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

[文本处理] 求助文件重命名换顺序的批处理

一堆图片命名格式A-B-C-D  怎么能实现变成A-C-B-D啊;
log_0588_2514_1_004.jpg变成 log_2514_0588_1_004.jpg 俩横线中间的数字位数不一样

本帖最后由 hlzj88 于 2020-4-12 00:00 编辑
  1. @echo off
  2. for /f "tokens=1-4* delims=_" %%i in ('dir /b/on *.jpg') do echo ren %%i_%%j_%%k_%%l_%%m %%i_%%k_%%j_%%l_%%m
  3. pause
复制代码
测试无误去掉 echo
1

评分人数

    • haichuan5121: 谢谢 完美实现 大神,小白谢过了技术 + 1
目的,学习批处理

TOP

回复 2# hlzj88


搭车问一下t0001,t0002,t0003之类的名字,如何改成chd0001,chd0002,chd0003之类的脚本怎么写?
中间没有分割符号。

TOP

本帖最后由 haichuan5121 于 2020-4-12 18:46 编辑

回复 2# hlzj88


    谢谢;A-B-C-D 转A-C-B-D成功;A里面共6位字母 第5.6两位怎么能批量互换么;单独批处理换5.6位也行
   A=1edfc3  换成1edf3c    A内容随机6位,之前有个编辑的只能换指定字符 ,大神能改个换任意字符的么;不管5.6位是啥,5,6位互换;
  1. @echo off
  2. echo.&echo.
  3. title 批量替换文件名中的部分字符串&color 3f
  4. echo Note:
  5. echo 本批处理可批量替换本文件所在文件夹下的所有文件名的相同字符
  6. echo.&echo.&echo.&echo.&echo.&echo.
  7. echo.&set /p strtemp3= 请输入要替换的文件类型:
  8. echo.&set /p strtemp1= 请输入要替换的字符串(可替换空格):
  9. echo.&set /p strtemp2= 请输入替换后的字符串(删除则直接回车):
  10. setlocal enabledelayedexpansion
  11. for /f "delims=" %%a in ('dir /a /b *.%strtemp3%') do (
  12. set nobird=%%a
  13. ren "%%~a" "!nobird:%strtemp1%=%strtemp2%!")
  14. echo.&echo.&echo.&echo.&echo Done!
  15. pause
复制代码

TOP

回复 3# netdzb
  1. @echo off & setlocal enabledelayedexpansion
  2. rem 在这里设置替换的字符串
  3. set "from=doc"
  4. set "to=AAA"
  5. :main
  6.     for /R %%i in (*.*) do (
  7.         set "file=%%~nxi"
  8.         if not "!file!"=="!file:%from%=%to%!" rename "%%~dpi!file!" "%%~dpi!file:%from%=%to%!"
  9.         
  10.     )
  11.     pause
  12. goto:eof
复制代码
已知bug:会波及到文件扩展名。。。
我先考试,考完再修

TOP

本帖最后由 haichuan5121 于 2020-4-12 19:48 编辑

回复 5# wujunkai


    没成功,文件名1BCDLM-B-C-D.JPG  改成1BCDML-B-C-D     其中前六位字母是随机的 所以不能指定更改替换字符;需要按位数替换;

或者大神帮忙写个更高级的方式;批量查找替换   AB换成CF   CD换成JH  VC换成BG  共大约几十个组合,这两位小白可以单独修改后查找替换;

TOP

回复 6# haichuan5121


    哦这个是给3楼的。。。

TOP

能帮我这个看看怎么改吗
回复 7# wujunkai

TOP

回复 4# haichuan5121


    批量替换是只换A还是A-B-C-D都换

TOP

回复 9# went


    只huan A 就行

TOP

回复 9# went

名字没有空格后两位互换
    1ABC DE-----1ABC ED
    1ABC CF------1ABC FC
或者高级需求;约50个组合可自定义指定替换内容
如指定 CF 替换为HG  CV 替换为CA后效果
   1ABC CF----1ABC HG
   1ABC CV---1ABC CA

TOP

本帖最后由 went 于 2020-4-12 21:04 编辑

批量替换,ANSI保存,先测试再删掉15行的REM
  1. @echo off
  2. REM dir
  3. set "dir=C:\Users\lenovo\Desktop\0"
  4. REM key-value
  5. set "keys=AB:CF CD:JH VC:BG"
  6. for /f "tokens=1* delims=-" %%i in ('dir /b "%dir%\*.jpg"') do (
  7. echo %dir%\%%i-%%j
  8. call set "fileName=%%i"
  9. for %%a in (%keys%) do (
  10. for /f "tokens=1-2 delims=:" %%b in ("%%a") do (
  11. call set "fileName=%%fileName:%%b=%%c%%"
  12. )
  13. )
  14. call echo %%fileName%%-%%j
  15. REM call rename "%dir%\%%i-%%j" "%%fileName%%-%%j" && echo 成功! || echo 失败!
  16. echo ---------------
  17. )
  18. echo 完成!
  19. pause&exit
复制代码
1

评分人数

TOP

回复 3# netdzb
  1. rename t*.txt chd*.txt
复制代码
2

评分人数

    • netdzb: 真实有效,谢谢。技术 + 1
    • wujunkai: 几乎要忘记这种方法了技术 + 1

TOP

回复 13# went


别用这种,发现有bug
t00001.txt会替换成chd001.txt
类似占位符替换,不过这种应该有其它用处

TOP

本帖最后由 haichuan5121 于 2020-4-12 22:23 编辑

回复 12# went


    文件夹下原文件实验不成功,但是复制成副本就全部成功了,A_B_C_D.JPG 不成功,A_B_C_D-副本.jpg就OK呢,是分隔符不适用么

TOP

返回列表