使用2位数字递增

时间:2016-09-12 21:19:53

标签: powershell

我有以下代码将增量编号附加到每个文件名的开头。如何以01而不是1开头。

$files = Get-ChildItem "C:\test"

$i = 1
foreach ($file in $files) {
    $newname = "$i" + $file
    Rename-Item $($file.FullName) $newname
    $i++
}

1 个答案:

答案 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)}