我搜索了Stack Overflow,我发现的大部分答案都不是我想要做的。我在目录中有多个文件,我试图通过在扩展名之前附加当前日期和时间作为后缀来重命名。
我已在单个文件上多次完成,但无法使其适用于大量文件。这是我正在使用的代码:
Get-ChildItem $Path -Filter "*.dat" -Recurse | Rename-Item -NewName {$_.Basename + '_' + $curDateTime + $_.Extension }
它不会失败,但文件不会重命名。
答案 0 :(得分:2)
这对我有用:
$curDateTime = Get-Date -Format yyyyMMdd-HHmmss
Get-ChildItem $Path *.dat -Recurse |
Rename-Item -NewName {$_.Basename + '_' + $curDateTime + $_.Extension } -WhatIf
答案 1 :(得分:0)
另一种解决方案:
Get-ChildItem $Path -Filter "*.dat" -Recurse |
ren -New {$_.Name -replace '[.](?!.*?[.])',"_${curDateTime}."} -What