编码全部保存成ansi
新旧文件名用英文?分割
例如:
新文件名1.pdf?旧文件名.jpg
新文件名2.pdf ? 旧文件名.jpg- @echo off&pause
-
- for /f "usebackq eol=/ tokens=1,2,3 delims=?" %%a in ("new_filenames.txt") do (
- setlocal
- set _@new=%%a
- set _@old=%%b
- if "%%c" neq "" set _@old=
-
- if defined _@old (
-
- setlocal enabledelayedexpansion
- if "!_@new:~0,1!" == " " (
- for /f "tokens=1,* delims= " %%x in ("?!_@new!") do endlocal&set _@new=%%~y
- ) else endlocal
-
- setlocal enabledelayedexpansion
- if "!_@old:~0,1!" == " " (
- for /f "tokens=1,* delims= " %%x in ("?!_@old!") do endlocal&set _@old=%%~y
- ) else endlocal
-
- setlocal enabledelayedexpansion
- for %%z in ("!_@new!") do endlocal&set _@new=%%~nxz
-
- setlocal enabledelayedexpansion
- for %%z in ("!_@old!") do endlocal&set _@old=%%~nxz
-
- setlocal enabledelayedexpansion
- if exist "!_@old!" (
- if not exist "!_@new!" (
- echo rename "!_@old!" to "!_@new!"
- rename "!_@old!" "!_@new!"
- ) else (echo 存在跟新文件名"!_@new!"同名的文件 : 不处理
- )
- ) else (echo 警告 : 需要改名的文件"!_@old!"不存在
- )
- endlocal
-
- ) else ( call echo 错误 : 当前行格式不正确
- )
- endlocal
- )
- pause
复制代码
|