[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
编码全部保存成ansi
新旧文件名用英文?分割
例如:
新文件名1.pdf?旧文件名.jpg
新文件名2.pdf    ?     旧文件名.jpg
  1. @echo off&pause
  2. for /f "usebackq eol=/ tokens=1,2,3 delims=?" %%a in ("new_filenames.txt") do (
  3. setlocal
  4. set _@new=%%a
  5. set _@old=%%b
  6. if "%%c" neq "" set _@old=
  7. if defined _@old (
  8. setlocal enabledelayedexpansion
  9. if "!_@new:~0,1!" == " " (
  10. for /f "tokens=1,* delims= " %%x in ("?!_@new!") do endlocal&set _@new=%%~y
  11. ) else endlocal
  12. setlocal enabledelayedexpansion
  13. if "!_@old:~0,1!" == " " (
  14. for /f "tokens=1,* delims= " %%x in ("?!_@old!") do endlocal&set _@old=%%~y
  15. ) else endlocal
  16. setlocal enabledelayedexpansion
  17. for %%z in ("!_@new!") do endlocal&set _@new=%%~nxz
  18. setlocal enabledelayedexpansion
  19. for %%z in ("!_@old!") do endlocal&set _@old=%%~nxz
  20. setlocal enabledelayedexpansion
  21. if exist "!_@old!" (
  22. if not exist "!_@new!" (
  23. echo rename "!_@old!" to "!_@new!"
  24. rename "!_@old!" "!_@new!"
  25. ) else (echo 存在跟新文件名"!_@new!"同名的文件 : 不处理
  26. )
  27. ) else (echo 警告 : 需要改名的文件"!_@old!"不存在
  28. )
  29. endlocal
  30. ) else ( call echo 错误 : 当前行格式不正确
  31. )
  32. endlocal
  33. )
  34. pause
复制代码

TOP

返回列表