首页 > 解决方案 > Powershell 以四位数递增

问题描述

我想用文件名中包含的增量编号重命名一批文件,但是我希望这些数字保持四位数字,并以 0 作为占位符(0001、0002 等)。

我相信我必须格式化增量增加,'{0:d4}' -f $variable但无法弄清楚。以下代码适用于两位数的数字,例如:0010,但对于 1-9 仅产生三位数字:001、002 等。

如何使用四位数增量数字的格式?

$number = 00
$files = GCI "C:\work\" -filter *.jpg

foreach($file in $files){
    $name = $file.BaseName.Split(".")[0]
        $file | Rename-Item -NewName ("$name`_" + ($number++) + "_.jpg")
}

标签: powershell

解决方案


使用-f运算符自动对值进行零填充:

$number = 0
$files = GCI "C:\work\" -filter *.jpg

foreach($file in $files){
    $name = $file.BaseName.Split(".")[0]
    $newName = '{0}_{1:0000}_.jpg' -f $name,($number++)
    $file | Rename-Item -NewName $newName
}

格式化字符串0000仅表示“从 0 到长度为 4 的左填充值”


推荐阅读