如何在PowerShell中实现带前置零的递增数字批量重命名图片文件
实现动态补前导零的图片重命名
当然可行,以下两种方法都能满足你的需求:
方法一:显式条件判断(适合理解逻辑)
直接在循环里通过if-elseif-else判断数字范围,生成对应格式的文件名:
$nr = 1 # Get-ChildItem是PowerShell标准命令,和Dir功能一致 Get-ChildItem | ForEach-Object { # 根据当前数字生成对应格式的文件名 $newFileName = if ($nr -lt 10) { "00$nr.jpg" } elseif ($nr -lt 100) { "0$nr.jpg" } else { "$nr.jpg" } # 执行重命名 Rename-Item $_ -NewName $newFileName # 数字自增 $nr++ }
方法二:利用PowerShell数字格式化(更简洁高效)
PowerShell支持数字格式字符串,D3表示将数字格式化为3位十进制数,不足位数自动补前导零,刚好匹配你的需求(1→001,10→010,100→100,101→101):
$nr = 1 Get-ChildItem | ForEach-Object { Rename-Item $_ -NewName ('{0:D3}.jpg' -f $nr++) }
补充说明
- 建议用
Get-ChildItem替代Dir,前者是PowerShell原生命令,跨平台兼容性更好 - 如果只想处理
.jpg文件,可以给Get-ChildItem加参数:Get-ChildItem -Filter *.jpg,避免误改其他类型文件
内容的提问来源于stack exchange,提问作者ForteAnother
相关产品推荐
相关产品推荐

