批量重命名图片文件:基于文本文件中的多词名称实现重命名需求
批量重命名图片文件:基于文本文件中的多词名称实现重命名需求
嘿,刚好处理过类似的批量重命名需求,给你分不同操作系统的实用方案,确保能把文件夹里的随机命名图片(比如random.jpg)按文本文件里的多词名称依次重命名:
先明确需求前提
你的文本文件里的名称是用逗号加空格分隔的:
Achilles Reef , Island Emerald Falcon , Octopus Noelle Phoenix , Scribe Magenta Phoenix
我们需要先把这些名称拆分出来,再对应到文件夹里的图片文件(默认按文件创建/修改时间排序,确保顺序匹配)。
Windows平台:用PowerShell脚本实现
- 先把你的名称文本保存成
names.txt(比如放在桌面) - 打开PowerShell,复制下面的脚本,记得替换路径:
# 切换到存放图片的文件夹 Set-Location "C:\Users\你的用户名\Pictures\待重命名图片" # 读取名称文件,拆分并去除多余空格 $names = (Get-Content "C:\Users\你的用户名\Desktop\names.txt").Split(",") | ForEach-Object { $_.Trim() } # 获取所有JPG图片,按创建时间排序(保证顺序对应) $images = Get-ChildItem -Filter *.jpg | Sort-Object CreationTime # 先检查名称和图片数量是否匹配,避免出错 if ($names.Count -ne $images.Count) { Write-Error "警告:名称数量和图片数量不匹配!请检查后再执行" exit } # 循环执行重命名 for ($i=0; $i -lt $names.Count; $i++) { Rename-Item -Path $images[$i].FullName -NewName "$($names[$i]).jpg" }
小提示:如果你的
names.txt已经是每行一个名称,可以把拆分那行改成$names = Get-Content "C:\路径\names.txt",更简单。
Linux/macOS平台:用Bash脚本实现
- 同样把名称文本保存成
names.txt - 打开终端,复制下面的脚本,替换路径:
# 切换到图片文件夹 cd /Users/你的用户名/Pictures/待重命名图片 # 读取名称文件,按逗号加空格拆分到数组 IFS=', ' read -r -a names < /Users/你的用户名/Desktop/names.txt # 获取所有JPG图片,按修改时间排序 images=(*.jpg) # 检查数量匹配 if [ ${#names[@]} -ne ${#images[@]} ]; then echo "警告:名称数量和图片数量不匹配!请检查" exit 1 fi # 循环重命名 for i in "${!names[@]}"; do mv "${images[$i]}" "${names[$i]}.jpg" done
小提示:如果要按文件名称排序,把
images=(*.jpg)改成images=($(ls *.jpg))即可;如果担心覆盖文件,可以把mv改成mv -n(遇到重名就跳过)。
备注:内容来源于stack exchange,提问作者upperking
相关产品推荐
相关产品推荐

