根据文本文件中的部分名称删除文件

时间:2018-07-04 08:37:27

标签: batch-file

我想删除.mp3中所有C:\temp文件,这些文件以txt文件Mytxtfile.txt中定义的开头。

例如,C:\temp包含:

AliciaEffort.mp3
AliciaKlay.mp3
AliciaLow.mp3
Emanlw.mp3
EmanDown.mp3
JonKLa.mp3
JohnHd.mp3

Mytxtfile.txt包含:

AliciaEffor
Emoanlw
GrezyK
JohnHd
etc.

我的代码:

set WORKDIR="C:\temp"
set LISTFILES="C:\Users\StevenRg\Desktop\mytxtfile.txt"
pushd %WORKDIR%
    for %%G in (*) do (
        for /f "tokens=* usebackq" %%H in (%LISTFILES%) do (
            if %%G==%%H del /p "%%G"
             )
  )
popd

但是它不起作用... 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可能会这样:

@Echo Off
Set "WorkDir=C:\temp"
Set "ListFile=%UserProfile%\Desktop\mytxtfile.txt"

CD /D "%WorkDir%" 2>Nul || Exit /B
If Not Exist "%ListFile%" Exit /B

For /F "UseBackQ Delims=" %%A In ("%ListFile%") Do Del /A /F /Q "%%A*.mp3" 2>Nul

(可选)用以下命令替换最后一行可能更安全:

For /F Delims^=^ EOL^= %%A In ('Type "%ListFile%"') Do Del /A /F /Q "%%~A*.mp3" 2>Nul