Board logo

标题: [文件操作] 求助:改文件名批处理 [打印本页]

作者: 怪怪的僵尸    时间: 2014-1-13 13:54     标题: 求助:改文件名批处理

本帖最后由 怪怪的僵尸 于 2014-1-14 08:25 编辑

【功能】:批量更改文件名
【代码】:
  1. @echo off&setlocal enabledelayedexpansion
  2. echo. 2>nul 3>a.txt
  3. :csxz
  4. ::开始
  5. echo 使用说明:请先将全部要操作的文件放在一个文件夹里。
  6. echo [1] 文件名前缀;
  7. echo [2] 文件名后缀;
  8. echo [0] 退出。
  9. set /p csxz=请选择:
  10. ::标签跳转
  11. if !csxz!==1 goto qz
  12. if !csxz!==2 goto hz
  13. if !csxz!==0 exit
  14. echo 错误
  15. goto csxz
  16. ::前缀
  17. :qz
  18. echo 请输入路径,若在当前路径请不要输入。
  19. set /p lj=请输入:(路径后请加反斜杠)
  20. ::若路径为空,则cd到.(当前文件夹)。
  21. cd /d !lj!.
  22. ::将文件名存在hc.txt中.
  23. dir /o:n /a>hc.txt
  24. set /p qz=请输入前缀:
  25. ::略过前两个文件夹(..和.),读取第四栏(文件名),加前缀。
  26. for /f "tokens=4 skip=5" %%a in (hc.txt) do (
  27.         ren %%a !qz!%%a
  28. )
  29. del /q hc.txt
  30. echo OK^!&pause&cls&goto csxz
  31. ::后缀
  32. :hz
  33. echo 请输入路径,若在当前路径请不要输入。
  34. set /p lj=请输入:(路径后请加反斜杠)
  35. ::若路径为空,则cd到.(当前文件夹)。
  36. cd /d !lj!.
  37. ::将文件名存在hc.txt中.
  38. dir /o:n /a>hc.txt
  39. set /p qz=请输入后缀:
  40. ::略过前两个文件夹(..和.),读取第四栏(文件名),分割后缀名,主文件名后加后缀,后缀名不动。
  41. for /f "tokens=4 skip=5" %%a in (hc.txt) do (
  42.         for /f "delims=. tokens=1-2" %%i in ("%%a") do (
  43.                 ren %%i.%%j %%i!hz!.%%j
  44.         )
  45. )
  46. del /q hc.txt
  47. echo OK^!&pause&cls&goto csxz
  48. ::完毕
  49. ::缺点:1.不能对有空格的文件重命名;2.用了临时文件。
复制代码
【求助】出现了不明错误信息;“文件名后缀”功能无法使用。
【P.S.】 所有错误信息已经重定向至a.txt
【前缀功能错误信息】
  1. 另一个程序正在使用此文件,进程无法访问。
  2. 拒绝访问。
  3. 另一个程序正在使用此文件,进程无法访问。
  4. 系统找不到指定的文件。
  5. 系统找不到指定的文件。
  6. 找不到批处理文件。
复制代码
【后缀功能错误信息】
  1. 另一个程序正在使用此文件,进程无法访问。
  2. 系统找不到指定的文件。
  3. 系统找不到指定的文件。
复制代码

作者: 怪怪的僵尸    时间: 2014-1-13 15:51

求助!很急!
作者: DAIC    时间: 2014-1-13 17:01

不明错误信息在哪里?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2