CMD BAT 批量重命名
一、语法格式
for /f "tokens=取值索引 delims=分隔符号集合" %%str in (待处理字符串) do(命令2)
参数
delims:分隔符集合,如果有空格空格放最后
tokens:取分隔后第n个元素
tokens=有时表示提取全部。
tokens=m表示提取第m列。
tokens=m,n表示提取第m列和第n列。
tokens=m-n表示提取第m列至第n列。
Tokens=*表示删除每行前面的空格。忽略行首的所有空格。
tokens=m*提取第m列以后的所有字符,星号表示剩余的字符。
tokens=m,*提取第m列以后的所有字符,星号表示剩余的字符。
二、范例
1.分隔后去除字符
命令:
@echo off for %%a in (*.jpg) do ( for /f "tokens=2 delims=_" %%b in ("%%a") do ren "%%a" "%%b" )
原始文件名:
X_22.jpg、XXXX_333.jpg、XX_4444.jpg、XX_1.jpg
执行后文件名:
22.jpg、333.jpg、4444.jpg、1.jpg
===========================================
2.多分隔符
命令
@echo off for %%a in (*.jpg) do ( for /f "tokens=2 delims=_() " %%b in ("%%a") do ren "%%a" "%%b" )
原始文件名:
1_2(测试 文件名)_3.jpg
执行后文件名:
文件名
===========================================
3.多分隔符多取值
命令
@echo off for %%a in (*.jpg) do ( for /f "tokens=4,6 delims=_(). " %%b in ("%%a") do ren "%%a" "%%b.%%c" ) pause
原始文件名:
1_2(测试 文件名)_3.jpg
执行后文件名:
文件名.jpg
@ECHO OFF rem sss set root_dir=%cd% set root_to_dir=%cd%\new for /f "tokens=1,2 delims=_" %%a in ('dir %root_dir%\*.jpg /b/s') do ( ECHO %%a_%%b ECHO %root_to_dir%\%%b copy %%a_%%b %root_to_dir%\%%b ) pause