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

[文件操作] 批处理如何批量替换文件名?

比如当前文件夹下有无数张照片:

a1.1.jpg
a1.2.jpg
a1.3.jpg
a1.4.jpg
a1.5.jpg
a1.6.jpg
……
a1.999.jpg

我要将文件名中的a替换成b
b1.1.jpg
b1.2.jpg
b1.3.jpg
b1.4.jpg
b1.5.jpg
b1.6.jpg
……
b1.999.jpg

要实现的效果是:在当前文件夹下,点击后就将原来所有的文件改名,且不论文件夹下是什么格式的文件,不局限于当前示例的jpg。
思路就是在bat,可以设置一个字符  替换成另一个字符,后期可以按需修改。

批处理获取路径就是当前文件夹目录,不要使用绝对路径。

批处理改名要排除批处理本身,如果目录下这个执行的批处理是a1.1.bat  不会修改成b1.1.bat

  1. @echo off
  2. rem 保存为ansi编码
  3. cd /d "%~dp0"
  4. set "oldstr=a"
  5. set "newstr=b"
  6. for /f "delims=" %%i in ('dir /b /a-d') do (
  7. if "%%i" neq "%~nx0" (
  8. set n=%%~ni
  9. if defined n (
  10. call ren "%%i" "%%n:%oldstr%=%newstr%%%%%~xi"
  11. )
  12. )
  13. )
  14. pause
复制代码
bat小白,请多指教!谢谢!

TOP

  1. @echo off
  2. set folder_path=%~dp0
  3. set output_file=%~dp0\Output.txt
  4. dir /b "%folder_path%\*" > "%output_file%"
  5. pause
复制代码
我在网上找到的只能实现这种功能。
这个获取当前目录下的文件名,如何排除Output.txt  和批处理本身呢?

TOP

返回列表