【发布时间】:2020-11-12 14:20:52
【问题描述】:
我有一个需要在每个文件的相同部分重命名的文件列表,具有不同的值。
例子:
BL_1402B103_abc.wav > BL_C1234-1_abc.wav
BL_15489B59_abc.wav > BL_C1234-5_abc.wav
所以在上面的第一个示例中,我想用C1234-1 替换1402B103,所有文件的长度都相同,并且我要替换的部分由“_”分隔。
我有一些用于查找/替换文件名部分的代码,但我需要为数百个文件执行此操作 - 有没有办法将 Pattern= & Replace= 作为变量从 csv/list 中提取并作为批处理运行?
Setlocal enabledelayedexpansion
Set "Pattern=1402B103"
Set "Replace=C1234-1"
For %%f in (*.wav) Do (
Set "File=%%~f"
Ren "%%f" "!File:%Pattern%=%Replace%!"
)
【问题讨论】:
-
您的模式是静态文本还是只是分隔符
_之间的数字/字母,而结尾的-1..-5呢?这是一个计数器吗?跨度> -
抱歉,不知道静态文本是什么意思?
-1..-5是新名称的一部分,而不是计数器。对于每个文件Pattern=和Replace=会有所不同,需要匹配。 1402B103 实际上是一个 CD ID 编号,我想用我们的“真实世界”参考编号替换它。希望这是有道理的。 -
那么你应该只选择实际包含你的模式的文件
For %%f in (*%pattern%*.wav) Do (
标签: batch-file cmd file-rename