批处理修改当前文件夹下照片名字中的一个字
假设要把当前文件夹下所有照片名字中的字母"a"替换成"b",可以使用以下批处理命令:
@echo off
setlocal enabledelayedexpansion
for %%f in (*.jpg, *.png) do (
set "filename=%%~nf"
set "newname=!filename:a=b!"
ren "%%f" "!newname!%%~xf"
)
echo All done!
pause
解释:
@echo off表示关闭命令行窗口的回显。setlocal enabledelayedexpansion表示开启延迟环境变量扩展,用于在for循环中使用变量。for %%f in (*.jpg, *.png) do (...)表示遍历当前文件夹下所有以".jpg"或".png"为扩展名的文件,并对每个文件执行后续操作。set "filename=%%~nf"表示将文件名保存到变量"filename"中,"%%~nf"表示去掉文件扩展名的文件名。set "newname=!filename:a=b!"表示将"filename"中的字母"a"替换成"b",并保存到"newname"变量中。使用"!"而不是"%"是因为延迟环境变量扩展需要使用"!"来引用变量。ren "%%f" "!newname!%%~xf"表示将原文件名改为新文件名。"%%~xf"表示文件的扩展名,保留原有扩展名不变。echo All done!表示处理完成的提示。pause表示暂停程序,等待用户按下任意键继续。
注意:在运行批处理前,建议先备份一下照片文件,以免不小心修改出错导致数据丢失
原文地址: https://www.cveoy.top/t/topic/fleo 著作权归作者所有。请勿转载和采集!