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

时间:2019-08-18 15:20:13

标签: powershell cmd rename filenames

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

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

一个例子是: 2008-03-14_outputs.txt,已更改为 14-MAR-2008_outputs.txt

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

我已经进行了一些研究,但是我对cmd线或powershell非常陌生,无法找到已经询问此问题的位置。

1 个答案:

答案 0 :(得分:0)

详细说明:


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

递归返回文件名称,该文件名称以该世纪/上一个世纪的日期开头

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

这里:

$_.Name.Split('_')

将名称分为两部分,附加索引[0],[1]选择第一,第二部分。

Get-Date将日期转换为[datetime],该日期由-f format operatordd-MMM-yyyy进行OTOH转换为所需格式。