求可遍历多目录批量重命名TIFF文件的PowerShell脚本
批量重命名TIFF文件的PowerShell实现
完全可行,不用Do循环,直接通过遍历目标文件夹的方式就能实现需求。以下是可以直接使用的脚本,以及关键部分的说明:
完整脚本
# 筛选所有符合"vdl-1984-xx"格式的文件夹 Get-ChildItem -Directory -Filter 'vdl-1984-??' | ForEach-Object { # 提取文件夹名称中的两位序号(xx部分) $folderSeq = $_.Name.Split('-')[3] # 初始化当前文件夹内的文件序号 $fileCount = 1 # 遍历当前文件夹下的所有TIFF文件 Get-ChildItem -Path $_.FullName -Filter '*.tiff' | ForEach-Object { # 按规则生成新文件名并重命名 Rename-Item -Path $_.FullName -NewName "vdl-1984-$folderSeq-{0:D3}.tiff" -f $fileCount++ } }
关键逻辑说明
- 精准筛选目标文件夹:
Get-ChildItem -Directory -Filter 'vdl-1984-??'只列出符合命名格式的文件夹,??匹配两位数字,避免误处理其他无关文件夹。 - 提取文件夹序号:通过
Split('-')[3]将文件夹名称按-分割,取第4段(索引从0开始)就是需要的xx序号。 - 独立计数每个文件夹:每个文件夹内单独初始化
$fileCount = 1,确保每个文件夹的文件序号都从001开始自增,不会跨文件夹累计。 - 三位数字格式化:
{0:D3}会将序号格式化为三位数字,比如1变成001、10变成010,严格符合你要求的命名规则。
注意事项
- 建议先找一个测试文件夹运行脚本,确认重命名效果后再批量执行,防止误操作。
- 如果需要处理大小写混合的TIFF文件(如.TIFF),可以将Filter改为
*.[tT][iI][fF][fF],PowerShell默认不区分大小写,但这个写法能确保覆盖所有情况。 - 如果遇到重命名失败的情况(比如文件名重复),脚本会抛出错误,此时可以检查是否有手动命名过的文件和自动生成的文件名冲突。
内容的提问来源于stack exchange,提问作者Mitcheaux
相关产品推荐
相关产品推荐

