windows批处理正则表达式

时间:2014-07-29 00:25:34

标签: windows batch-file

我有一堆格式的文件:TOTO-A#7.wav我想重命名它们 TOTO_7_As.wav(s表示尖锐),但我不太擅长正则表达式。 你知道它是否有可能轻易做到这一点? 干杯

2 个答案:

答案 0 :(得分:0)

从提示符开始:

for /f "tokens=1*delims=#" %a in ('dir /b /a-d *#*') do ren "%a#%b" "%aS%b"

作为批处理行:

for /f "tokens=1*delims=#" %%a in ('dir /b /a-d *#*') do ECHO(ren "%%a#%%b" "%%aS%%b"

请注意,第二个示例中的ECHO(只是显示所需的说明。这是为了有机会确保生成正确的指令。要执行说明,请移除ECHO(

(同样的技巧可以在之前的版本中使用,但读取结果有点棘手)


for /f "tokens=1,2,3*delims=#-." %%a in ('dir /b /a-d *-*#*.*') do ECHO(ren "%%a-%%b#%%c.%%d" "%%a_%%c_%%bs.%%d"

会将TOTO-A#7.wav重命名为TOTO_7_As.wav

不知道你的意思是什么“尖锐” - 或“介于两者之间”这件事。

答案 1 :(得分:0)

@echo off
for /F "tokens=1-3 delims=-#." %%a in ('dir /A-D /B *.wav') do ren "%%a-%%b#%%c.wav" "%%a_%%c_%%bs.wav

如果您想在命令行中执行上一个批处理文件,只需按%%更改每个%

如果您有其他扩展名为.wav且格式不同的文件,请更准确地更改*.wav通配符,例如:????-?#?.wav