如何用PowerShell批量处理成对的T1/T2命名数字文件?
PowerShell批量处理成对图片文件的解决方案
嗨,这事儿好办!咱们可以用PowerShell写个简单的脚本,自动遍历所有成对的T1_*.jpg和T2_*.jpg文件,批量执行convert命令。
核心思路
- 先找出所有以
T1_开头的JPG文件 - 从每个
T1文件名里提取出编号(比如从T1_00001.jpg里拿到00001) - 用这个编号找到对应的
T2_*.jpg文件 - 对每一对文件执行
convert命令
完整脚本代码
# 切换到目标文件夹(把路径改成你的实际文件夹路径) Set-Location "C:\Your\Image\Folder" # 获取所有T1开头的JPG文件 $t1Files = Get-ChildItem -Filter "T1_*.jpg" -File foreach ($t1 in $t1Files) { # 用正则提取编号部分 if ($t1.Name -match 'T1_(\d+)\.jpg') { $number = $matches[1] $t2Path = Join-Path -Path $t1.DirectoryName -ChildPath "T2_$number.jpg" # 检查对应的T2文件是否存在 if (Test-Path -Path $t2Path -PathType Leaf) { # 执行convert命令 convert -input1 $t1.FullName -input2 $t2Path -output "$number.jpg" Write-Host "已完成处理:$number.jpg" } else { Write-Warning "找不到匹配的T2文件:$t2Path" } } else { Write-Warning "文件名格式不符合规则:$($t1.Name)" } }
实用注意事项
- 确保convert工具可用:如果PowerShell提示找不到
convert命令,要么把工具的安装路径添加到系统PATH环境变量里,要么直接用完整路径调用(比如C:\Tools\convert.exe) - 路径替换:记得把脚本里的
C:\Your\Image\Folder改成你实际存放图片的文件夹路径 - 容错处理:脚本自带了文件存在检查和格式校验,避免因为文件缺失或命名不规范导致报错
- 递归处理:如果需要处理子文件夹里的文件,给
Get-ChildItem加上-Recurse参数即可
内容的提问来源于stack exchange,提问作者IanCun
相关产品推荐
相关产品推荐

