PowerShell批量为文件夹内文件名添加日期但未实际修改文件名问题排查
问题原因与解决办法
嘿,这个问题其实很好解释——你在Rename-Item命令后面加的**-WhatIf**参数是关键!
这个参数是PowerShell的「预览模式」开关,它的作用就是模拟执行操作,告诉你如果真的运行脚本会发生什么,但完全不会对实际文件做任何修改。这就是为什么终端里会输出每个文件的重命名预览,但你去文件夹里看,文件名还是原样的原因。
要让脚本真正执行重命名,只需要把-WhatIf去掉就行,修改后的脚本如下:
$Path = "C:\01Source\" write-host $Path $curDateTime = Get-Date -Format yyyyMMdd Get-ChildItem $Path -Recurse | Rename-Item -NewName {$_.Basename + '_' + $curDateTime + $_.Extension }
顺便提个小建议:如果不确定脚本的执行结果,先用-WhatIf预览是个非常稳妥的做法,确认所有操作都符合预期后,再去掉这个参数执行实际修改就好。另外,你脚本里用了-Recurse,它会处理目标路径下所有子文件夹里的文件,如果只需要修改C:\01Source根目录下的三个文件,可以把这个参数删掉,避免误改其他文件。
内容的提问来源于stack exchange,提问作者Philip Noah
相关产品推荐
相关产品推荐

