【发布时间】:2019-12-24 00:48:43
【问题描述】:
尝试根据现有文件名重命名数千个文件。所有文件都位于不同的子文件夹中,并由程序输出,文件名格式为: yyyy-mm-dd_filenameinfo.txt
需要重命名为: dd-MMM-yyyy_filenameinfo.txt
一个例子是: 2008-03-14_outputs.txt,更改为 2008 年 3 月 14 日_outputs.txt
我了解这样做会导致无法按日期排序,但不幸的是,这是提交过程的要求。
我已经做了一些研究,但我对 cmd line 或 powershell 非常不熟悉,而且我无法找到已经问过这个问题的位置。
【问题讨论】:
-
Rename-Item是您需要的命令。将几个文件复制到测试目录中,看看你是否可以让它工作。你现在的问题不是good question -
虽然以适当的可排序格式重命名文件不是 IMO 的最佳主意,但如您所愿,
gci [12][09][0-9][0-9]-[01][0-9]-[0-3][0-9]_* -File -Rec|Ren -Newname {'{0:dd-MMM-yyyy}_{1}' -f (Get-Date ($_.Name.Split('_')[0])),($_.Name.Split('_')[1])} -whatIf如果输出看起来正常,请删除尾随 -whatif -
@LotPings 感谢您的回答!是否有一个位置可以找到有关其工作原理的更多信息?它确实可以满足我的需要,但我总是乐于学习更多。
标签: powershell cmd rename filenames