批处理脚本:删除包含多个文件名中的特殊字符的特定/目标词

时间:2013-07-05 06:28:32

标签: windows batch-file cmd rename

我有几个外部网站名称为www.mymusic.com的mp3文件,该名称将位于mp3文件的开头/结尾

示例:

  • 01 - {www.mymusic.com} Hello Hello.mp3,
  • 02 - {www.mymusic.com} Hai Hai.mp3,
  • 03 - Hello Boys [www.musicworld.in] .mp3,
  • 04 - 你好女孩[www.musicworld.in] .mp3

所以我想要一个(windows)批处理脚本,要求我输入一个带有特殊字符的名称,然后说#34; [www.musicworld.in]"并将其从目录中存在的多个mp3文件中删除。

还给我一个如何使用/运行代码的示例。

请帮助:)

提前致谢

2 个答案:

答案 0 :(得分:3)

代码立即生效!

@echo off &SETLOCAL enabledelayedexpansion
SET /p "word=enter word to remove: "
IF "%word%"=="" GOTO :EOF
FOR /f "delims=" %%a IN ('dir /a-d /b "*%word%*.mp3"') DO (
    SET "fname=%%~na"
    SET "fname=!fname:%word%=!"
    IF NOT "!fname!"=="" REN "%%~a" "!fname!%%~xa"
)

答案 1 :(得分:0)

这是一个可以帮助您的批处理文件 - 它使用来自http://www.dostips.com/forum/viewtopic.php?f=3&t=3855的名为repl.bat的帮助程序批处理文件

目前它只回显REN命令,如果您对结果感到满意,请删除echo。这样做的一个好处是!字符不是问题,因为它们会延迟扩展。

@echo off
set /p "var=Enter the text to remove: "
for /f "delims=" %%a in ('dir *.mp3 /b /a-d ^|repl "^(.*)%var%(.*)" "ren \x22$&\x22 \x22$1$2\x22" x ') do echo %%a