标题: [文本处理] 求助文件重命名换顺序的批处理 [打印本页]
作者: haichuan5121 时间: 2020-4-11 21:02 标题: 求助文件重命名换顺序的批处理
一堆图片命名格式A-B-C-D 怎么能实现变成A-C-B-D啊;
log_0588_2514_1_004.jpg变成 log_2514_0588_1_004.jpg 俩横线中间的数字位数不一样
作者: hlzj88 时间: 2020-4-11 21:33
本帖最后由 hlzj88 于 2020-4-12 00:00 编辑
- @echo off
- 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
- pause
复制代码
测试无误去掉 echo
作者: netdzb 时间: 2020-4-12 14:36
回复 2# hlzj88
搭车问一下t0001,t0002,t0003之类的名字,如何改成chd0001,chd0002,chd0003之类的脚本怎么写?
中间没有分割符号。
作者: haichuan5121 时间: 2020-4-12 18:45
本帖最后由 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位互换;- @echo off
- echo.&echo.
- title 批量替换文件名中的部分字符串&color 3f
- echo Note:
- echo 本批处理可批量替换本文件所在文件夹下的所有文件名的相同字符
- echo.&echo.&echo.&echo.&echo.&echo.
- echo.&set /p strtemp3= 请输入要替换的文件类型:
- echo.&set /p strtemp1= 请输入要替换的字符串(可替换空格):
- echo.&set /p strtemp2= 请输入替换后的字符串(删除则直接回车):
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /a /b *.%strtemp3%') do (
- set nobird=%%a
- ren "%%~a" "!nobird:%strtemp1%=%strtemp2%!")
- echo.&echo.&echo.&echo.&echo Done!
- pause
复制代码
作者: wujunkai 时间: 2020-4-12 19:11
回复 3# netdzb - @echo off & setlocal enabledelayedexpansion
-
- rem 在这里设置替换的字符串
- set "from=doc"
- set "to=AAA"
-
- :main
- for /R %%i in (*.*) do (
- set "file=%%~nxi"
- if not "!file!"=="!file:%from%=%to%!" rename "%%~dpi!file!" "%%~dpi!file:%from%=%to%!"
-
- )
- pause
- goto:eof
复制代码
已知bug:会波及到文件扩展名。。。
我先考试,考完再修
作者: haichuan5121 时间: 2020-4-12 19:41
本帖最后由 haichuan5121 于 2020-4-12 19:48 编辑
回复 5# wujunkai
没成功,文件名1BCDLM-B-C-D.JPG 改成1BCDML-B-C-D 其中前六位字母是随机的 所以不能指定更改替换字符;需要按位数替换;
或者大神帮忙写个更高级的方式;批量查找替换 AB换成CF CD换成JH VC换成BG 共大约几十个组合,这两位小白可以单独修改后查找替换;
作者: wujunkai 时间: 2020-4-12 19:46
回复 6# haichuan5121
哦这个是给3楼的。。。
作者: haichuan5121 时间: 2020-4-12 19:50
能帮我这个看看怎么改吗
回复 7# wujunkai
作者: went 时间: 2020-4-12 20:31
回复 4# haichuan5121
批量替换是只换A还是A-B-C-D都换
作者: haichuan5121 时间: 2020-4-12 20:47
回复 9# went
只huan A 就行
作者: haichuan5121 时间: 2020-4-12 20:56
回复 9# went
名字没有空格后两位互换
1ABC DE-----1ABC ED
1ABC CF------1ABC FC
或者高级需求;约50个组合可自定义指定替换内容
如指定 CF 替换为HG CV 替换为CA后效果
1ABC CF----1ABC HG
1ABC CV---1ABC CA
作者: went 时间: 2020-4-12 20:58
本帖最后由 went 于 2020-4-12 21:04 编辑
批量替换,ANSI保存,先测试再删掉15行的REM- @echo off
- REM dir
- set "dir=C:\Users\lenovo\Desktop\0"
- REM key-value
- set "keys=AB:CF CD:JH VC:BG"
- for /f "tokens=1* delims=-" %%i in ('dir /b "%dir%\*.jpg"') do (
- echo %dir%\%%i-%%j
- call set "fileName=%%i"
- for %%a in (%keys%) do (
- for /f "tokens=1-2 delims=:" %%b in ("%%a") do (
- call set "fileName=%%fileName:%%b=%%c%%"
- )
- )
- call echo %%fileName%%-%%j
- REM call rename "%dir%\%%i-%%j" "%%fileName%%-%%j" && echo 成功! || echo 失败!
- echo ---------------
- )
- echo 完成!
- pause&exit
复制代码
作者: went 时间: 2020-4-12 21:25
回复 3# netdzb 复制代码
作者: went 时间: 2020-4-12 21:37
回复 13# went
别用这种,发现有bug
t00001.txt会替换成chd001.txt
类似占位符替换,不过这种应该有其它用处
作者: haichuan5121 时间: 2020-4-12 21:56
本帖最后由 haichuan5121 于 2020-4-12 22:23 编辑
回复 12# went
文件夹下原文件实验不成功,但是复制成副本就全部成功了,A_B_C_D.JPG 不成功,A_B_C_D-副本.jpg就OK呢,是分隔符不适用么
作者: went 时间: 2020-4-12 22:04
回复 15# haichuan5121
不成功图片完整的文件名能发出来下吗,
作者: haichuan5121 时间: 2020-4-13 00:06
回复 16# went
1bslhd125aAB_2514_0588_1_004.jpg 不成功1bslhd125aAB_2514_0588_1_004-副本.jpg成功转成1bslhd125aCF_2514_0588_1_004-副本.jpg
顺道改成放文件夹点击不需要改绝对地址那种
作者: went 时间: 2020-4-13 12:11
回复 17# haichuan5121
放到jpg文件夹中运行,重命名当前文件夹中的jpg文件- @echo off
- REM key-value
- set "keys=AB:CF CD:JH VC:BG"
- for /f "delims=" %%i in ('dir /b "*.jpg"') do (
- echo %%i
- set "file=?%%~i"
- REM delims=后面是A与BCD之间的分隔符(-_)支持多个
- for /f "tokens=1 delims=-_" %%a in ("%%~i") do (
- set "A=%%a"
- for %%a in (%keys%) do (
- for /f "tokens=1-2 delims=:" %%b in ("%%a") do (
- call set "A=%%A:%%b=%%c%%"
- )
- )
- call :replace "?%%a" "%%A%%"
- )
- call echo %%file%%
- REM call rename "%%~i" "%%file%%" && echo 成功! || echo 失败!
- echo -----------------------
- )
- echo 完成!
- pause&exit
- :replace
- call set "file=%%file:%~1=%~2%%"
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |