[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批量修改文件名

  因为自己要用所以写了个,无任何技术成分.但能用
  1. setlocal enabledelayedexpansion
  2. :d
  3. cls
  4. echo.
  5. echo.
  6. echo.
  7. echo.批量修改文件名
  8. echo 只能对一个目录下的文件操作,要想对整个目录树下(包括子目录)的文件操作,请把文本中的"/f"替换成"/r"
  9. set /p dir1=请输入正确的目录:
  10. cd \
  11. cd /d "%dir1%"
  12. if "%errorlevel%"=="1" goto :d
  13. :list
  14. cls
  15. color 3f
  16. echo.
  17. echo.
  18. echo.
  19. echo 1.添加前后缀
  20. echo 2.替换(删除)字符
  21. echo 3.截取字符
  22. echo 4.改扩展名
  23. echo 5.退出
  24. echo.
  25. echo.
  26. choice /c 12345 /m 请选择:
  27. goto %errorlevel%
  28. :1
  29. echo 输入文件名前面加的字符,操作不可逆,请慎用,没有请留空(直接回车)!!!!
  30. set /p prif=请输入前缀字符:
  31. echo 输入文件名后面加的字符,操作不可逆,请慎用,没有请留空(直接回车)!!!!
  32. set /p suff=请输入后缀字符:
  33. for /f "skip=5 tokens=4" %%a in ('dir /a-d') do set file=%%~na&set name=%%~xa&ren %%a %prif%!file!%suff%!name! 2>nul
  34. echo 改名完成
  35. @for /l %%i in (1 1 30) do @set /p=^>nul
  36. goto :list
  37. :2
  38. set /p sub1=请输入文件名中要替换的字符串:
  39. set /p sub2=把%sub1%替换成(删除它则留空):
  40. for /f "skip=5 tokens=4" %%a in ('dir /a-d') do set file=%%~na&set name=%%~xa&call ren %%a !file:%sub1%=%sub2%!!name! 2>nul
  41. echo 改名完成
  42. @for /l %%i in (1 1 30) do @set /p=^>nul
  43. goto :list
  44. :3
  45. cls
  46. echo.
  47. echo.
  48. echo.
  49. echo.
  50. echo 1.取去掉前面a个字符后的字符 (对123456789.exe a=4 则改名后为56789.exe)
  51. echo 2.取去掉后面a个字符后的字符 (对123456789.exe a=3 则改名后为123456.exe)
  52. echo 3.取从后面数b个字符 (对123456789.exe b=4 则改名后为6789.exe)
  53. echo 4.取从第c个后开始的d个字符 (对123456789.exe c=4 d=2 则改名后为56.exe)
  54. echo 5.取从第h个后到倒数j个以前的字符(对123456789.exe h=4 j=2 则改名后为567.exe)
  55. echo 6.到主目录
  56. choice /c 123456 /m 请选择:
  57. goto :l%errorlevel%
  58. :l1
  59. set /p n=请输入a:
  60. for /f "skip=5 tokens=4" %%a in ('dir /a-d') do set file=%%~na&set name=%%~xa&call ren %%a !file:~%n%!!name! 2>nul
  61. echo 改名完成
  62. @for /l %%i in (1 1 30) do @set /p=^>nul
  63. goto :3
  64. :l2
  65. set /p n=请输入a:
  66. for /f "skip=5 tokens=4" %%a in ('dir /a-d') do set file=%%~na&set name=%%~xa&call ren %%a !file:~0,-%n%!!name! 2>nul
  67. echo 改名完成
  68. @for /l %%i in (1 1 30) do @set /p=^>nul
  69. goto :3
  70. :l3
  71. set /p n=请输入b:
  72. for /f "skip=5 tokens=4" %%a in ('dir /a-d') do set file=%%~na&set name=%%~xa&call ren %%a !file:~-%n%!!name! 2>nul
  73. echo 改名完成
  74. @for /l %%i in (1 1 30) do @set /p=^>nul
  75. goto :3
  76. :l4
  77. set /p n=请输入c:
  78. set /p m=请输入d:
  79. for /f "skip=5 tokens=4" %%a in ('dir /a-d') do set file=%%~na&set name=%%~xa&call ren %%a !file:~%n%,%m%!!name! 2>nul
  80. echo 改名完成
  81. @for /l %%i in (1 1 30) do @set /p=^>nul
  82. goto :3
  83. :l5
  84. set /p n=请输入h:
  85. set /p m=请输入j:
  86. for /f "skip=5 tokens=4" %%a in ('dir /a-d') do set file=%%~na&set name=%%~xa&call ren %%a !file:~%n%,-%m%!!name! 2>nul
  87. echo 改名完成
  88. @for /l %%i in (1 1 30) do @set /p=^>nul
  89. goto :3
  90. :l6
  91. goto :list
  92. :4
  93. echo 请慎重改扩展名
  94. set /p name=请输入要改什么扩展名:
  95. set /p name2=把%name%改成什么:
  96. for /f "skip=5 tokens=4" %%a in ('dir *.%name%') do set file=%%~na&call ren %%a !file!.%name2% 2>nul
  97. echo 改名完成
  98. @for /l %%i in (1 1 30) do @set /p=^>nul
  99. goto :list
  100. :5
  101. exit
复制代码

返回列表