Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 基于文本文件中的部分名称删除文件_Batch File - Fatal编程技术网

Batch file 基于文本文件中的部分名称删除文件

Batch file 基于文本文件中的部分名称删除文件,batch-file,Batch File,我想删除C:\temp中的所有.mp3文件,这些文件以txt文件Mytxtfile.txt中定义的文件开头 例如,C:\temp包含: AliciaEffort.mp3 AliciaKlay.mp3 AliciaLow.mp3 Emanlw.mp3 EmanDown.mp3 JonKLa.mp3 JohnHd.mp3 AliciaEffor Emoanlw GrezyK JohnHd etc. Mytxtfile.txt包含: AliciaEffort.mp3 AliciaKlay.mp3

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

例如,
C:\temp
包含:

AliciaEffort.mp3
AliciaKlay.mp3
AliciaLow.mp3
Emanlw.mp3
EmanDown.mp3
JonKLa.mp3
JohnHd.mp3
AliciaEffor
Emoanlw
GrezyK
JohnHd
etc.
Mytxtfile.txt
包含:

AliciaEffort.mp3
AliciaKlay.mp3
AliciaLow.mp3
Emanlw.mp3
EmanDown.mp3
JonKLa.mp3
JohnHd.mp3
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
但是它不起作用。。。
有什么想法吗?

你可以这样做:

@Echo关闭
设置“WorkDir=C:\temp”
设置“ListFile=%UserProfile%\Desktop\mytxtfile.txt”
CD/D“%WorkDir%”2>Nul | |退出/B
如果不存在“%ListFile%”退出/B
对于/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

你能解释一下它以什么方式不起作用吗?因为我在mytxtfile.txt上定义了一些单词。我想匹配这些单词,然后在c:\temp every.mp3上删除与mytxtfile.txt上的单词匹配的单词。我应该在某个地方添加正则表达式?为什么不在文件中每行定义一个正则表达式?如果您确实这样做了,请编辑您的问题以相应的格式。我编辑此^^将您的文本文件转换为批处理文件,使用列模式(在记事本++的情况下为Alt+Shift+Arrow),这将允许您将
del
放在每一行的前面,并将
*.mp3
放在最后一行。最后一行以何种方式更安全(除了伤残代码> EOL )?您在考虑字符编码吗?@ ASCHIPFL,认为文本文件可能不是带有CRLF行结尾的ASCII文本。