根据现有文件名重命名文件

Renaming files based on their existing filename

正在尝试根据现有文件名重命名几千个文件。所有文件都在不同的子文件夹中,并由程序输出,文件名格式为: yyyy-mm-dd_filenameinfo.txt

需要重命名为: dd-MMM-yyyy_filenameinfo.txt

例如: 2008-03-14_outputs.txt,正在更改为 3 月 14 日-2008_outputs.txt

我知道这样做会导致按日期排序丢失,但不幸的是,这是提交过程的要求。

我已经做了一些研究,但我对 cmd 行或 powershell 非常不熟悉,我无法找到已经问过这个问题的位置。

详细说明我的评论:


Get-ChildItem [12][09][0-9][0-9]-[01][0-9]-[0-3][0-9]_* -File -Recurse

递归 returns 文件名以 this/previous 世纪

的日期开始
|Rename-Item -Newname {'{0:dd-MMM-yyyy}_{1}' -f (Get-Date ($_.Name.Split('_')[0])),($_.Name.Split('_')[1])}

这里:

$_.Name.Split('_')

将名称拆分为两部分,附加索引 [0],[1] selcect 的第 1、2 部分。

Get-Date 将日期转换为 [datetime],后者由 -f format operatordd-MMM-yyyy

OTOH 转换为所需格式