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

批处理替换文件名,20元求助

我的总文件夹下,有N个文件,N个文件夹,文件名(文件夹名)前面都是一样的,序号不一样,比如是(小猪1.jpg,小猪2.jpg,小猪3.png,小猪4.psd,.......)要替换成(小猫1.jpg,小猫2.jpg,小猫3.png,小猫4.psd,.......),文件夹更名也是同理

回复 1# coolzq1980


test1.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set "OldStr=小猪"
  5. set "NewStr=小猫"
  6. for /f "delims=" %%i in ('dir /b /ad') do (
  7.     set "OldFolder=%%i"
  8.     set "NewFolder=!OldFolder:%OldStr%=%NewStr%!"
  9.     ren "!OldFolder!" "!NewFolder!"
  10. )
  11. for /f "delims=" %%i in ('dir /b /a-d') do (
  12.     if "%%i" neq "%~nx0" (
  13.         set "OldFile=%%i"
  14.         set "NewFile=!OldFile:%OldStr%=%NewStr%!"
  15.         ren "!OldFile!" "!NewFile!"
  16.     )
  17. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# coolzq1980


test2.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set "OldStr=小猪"
  5. set "NewStr=小猫"
  6. for /f "delims=" %%i in ('dir /b') do (
  7.     if "%%i" neq "%~nx0" (
  8.         set "OldName=%%i"
  9.         set "NewName=!OldName:%OldStr%=%NewStr%!"
  10.         ren "!OldName!" "!NewName!"
  11.     )
  12. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

外面的小孩一直叫我,烦死了!
  1. ren 小猪* 小猫*
复制代码
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

本帖最后由 qixiaobin0715 于 2021-9-18 06:55 编辑

回复 1# coolzq1980
楼主几次说法都不统一。我第一次理解是修改目标文件夹下文件名及子文件夹名,第二次理解为修改子文件夹名及子文件夹下的文件名,不知道楼主到底是什么意思,现在只有理解为修改目标文件夹中所有目录中的名称(包括范围内的所有文件夹及文件)。受到版主的启示,代码可以这样写:
  1. @echo off
  2. set "OldStr=小猪"
  3. set "NewStr=小猫"
  4. setlocal enabledelayedexpansion
  5. cd /d D:\abc
  6. for /f "delims=" %%a in ('dir /b /s ^|sort /r') do (
  7. set str=%%~nxa
  8. set str=!str:%OldStr%=%NewStr%!
  9. ren "%%a" "!str!"
  10. )
  11. pause
复制代码
注意事项:
1.假设目标文件夹为D:\abc;
2.不要把批处理文件放在目标文件夹下;
3.代码中的sort /r,是为了先修改内层文件及文件夹,防止循环中改名后,目录改变而引起找不到路径的情况。

TOP

返回列表