使用反向引用和日期时间戳重命名文件

Rename file with back-reference and date-timestamp

我无法让它工作:

Get-Item 'foo.txt' | Rename-Item -NewName { $_.name -replace $_.basename, ((Get-Date -format 'yyyyMMdd.hhmm') + '-' + )}

输出是 20170323.0329-.txt,我想要的输出是 20170323.0329-foo.txt。我以前做过反向引用,但没有用 rename-item,我无法让它工作。

不需要此处的正则表达式。只需使用 格式字符串 :

Get-Item 'foo.txt' | Rename-Item -NewName {('{0:yyyyMMdd.hhmm}-{1}' -f (Get-Date), $_.BaseName)}

就去做

$file="test2.txt"
Rename-Item $file ('{0:yyyyMMdd.hhmm}-{1}' -f (Get-Date), $file)