我有以下代码将增量编号附加到每个文件名的开头。如何以01而不是1开头。
$files = Get-ChildItem "C:\test"
$i = 1
foreach ($file in $files) {
$newname = "$i" + $file
Rename-Item $($file.FullName) $newname
$i++
}
答案 0 :(得分:4)
有几种方法,我会使用-f(格式)运算符。
以下是我如何在管道中写下来的内容:
Get-ChildItem "C:\test" | ForEach-Object -Begin { $i=1 } {
Rename-Item $_ -NewName ("{0:D2}{1}" -f ($i++, $_.Name))
}
P.S。我经常忘记,但甚至可以使用延迟绑定ScriptBlock消除ForEach-Object。这对Rename-Item来说特别方便:
$i = 1
Get-ChildItem "C:\test" |
Rename-Item -NewName {"{0:D2}{1}" -f ($i++, $_.Name)}