【发布时间】:2021-04-20 22:15:26
【问题描述】:
我有一个包含大约 1700 个音频文件的文件夹,格式如下:
CybirdConanVoice2Cri#1 (AGA_SE1).wav
CybirdConanVoice2Cri#2 (AGA_SE10).wav
CybirdConanVoice2Cri#3 (AGA_SE11).wav
我想删除每个文件名的第一部分,只留下括号的内容。例如:
AGA_SE1.wav
AGA_SE10.wav
AGA_SE11.wav
我做了一些研究,似乎批处理可能是解决这个问题的最佳方法。我对批处理没有太多经验,但我想我会尝试自学足以解决这个问题。
我在 StackOverflow 上发现了许多问题,询问如何删除括号内的所有内容,但没有关于如何仅保留括号内的文本。摆弄了几个小时后,我整理了这段代码:
cd C:\Users\ etc etc
setlocal enabledelayedexpansion
for %%a in (*.wav) do (
set f=%%a
set g=%f:*(=%
ren "%%a" "!g!"
)
但是,当我在其中一个文件上尝试这个时,我得到了这个:CybirdConanVoice2Cri#1 (=。我想知道是否有更多经验的人可以帮助我,或者指出我的代码哪里出错了?提前致谢!
【问题讨论】:
-
将第一个
FOR命令的输出放入FOR /F命令中,该命令允许您使用DELIMS选项拆分字符串。FOR /F "tokens=2 delims=()" %%G in ("%%a") Do .... -
谢谢@Squashman!我现在几乎可以正常工作了 - 感谢您的帮助!
标签: string file batch-file