标题: [文件操作] [已解决]请问如何用BAT批量修改文件名? [打印本页]
作者: YYEnigma 时间: 2012-11-7 17:02 标题: [已解决]请问如何用BAT批量修改文件名?
是一些型号代码,结构为字母+数字,我想用bat批量改文件名,再所有文件名中字母和数字之间插入“_”符号
以下列举型号代码
KC50E窗机.doc →修改后为 KC_50_E窗机.doc
KFR35GWP壁挂分体.doc →修改后为 KFR_35_GWP壁挂分体.doc
WD75WU立机.doc →修改后为 WD_75_WU立机.doc
作者: BAT-VBS 时间: 2012-11-7 17:22
- sed -r "s/^([A-Z]+)([0-9]+)([A-Z]+)/\1_\2_\3/" a.txt >b.txt
复制代码
作者: YYEnigma 时间: 2012-11-7 17:40
回复 2# BAT-VBS
不好意思偶没有说的很清楚是文件 请问你这个代码怎么用?
作者: tmplinshi 时间: 2012-11-7 17:46
- ren2 -f "([a-zA-Z]*)(\d+)(.*)" "$1_$2_$3"
复制代码
ren2.exe 下载地址: http://www.lomont.org/Software/Utilities/Ren2/ren2.exe
作者: BAT-VBS 时间: 2012-11-7 18:01
回复 3# YYEnigma
直接用
作者: YYEnigma 时间: 2012-11-7 18:12
万分感谢tmplinshi 班主的回答 试过了 可以用
作者: YYEnigma 时间: 2012-11-7 18:13
回复 4# tmplinshi
万分感谢tmplinshi 班主的回答 试过了 可以用, 但能不能写个批处理来解决啊? 我更想知道 批处理是如何定义查找数字与字母之间的
作者: BAT-VBS 时间: 2012-11-7 18:52
回复 7# YYEnigma
BAT没有直接的方法,必须自己写代码做判断,目测代码会比较长、比较复杂。
作者: Batcher 时间: 2012-11-7 18:53
sed.exe 下载地址:
http://www.bathome.net/thread-1114-1-1.html
作者: tmplinshi 时间: 2012-11-7 20:10
本帖最后由 tmplinshi 于 2012-11-7 20:12 编辑
- @echo off
- setlocal enabledelayedexpansion
-
- set find_files="dir /b *.doc | findstr [a-zA-Z][a-zA-Z]*[0-9][0-9]*.*"
-
- for /f "delims=" %%a in (' %find_files% ') do (
- set fname=%%a
-
- for /f "delims=0123456789 tokens=1,*" %%b in ("%%a") do (
- set n=1!fname:*%%b=!
- set /a n = n
- set n=!n:~1!
-
- echo !fname! --^> %%b_!n!_%%c
- ren "!fname!" "%%b_!n!_%%c"
- )
- )
-
- pause
复制代码
作者: YYEnigma 时间: 2012-11-7 21:17
回复 10# tmplinshi
tmplinshi 版主真伟大啊!学习了 真的很感谢你写的代码 非常好用
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |