Batch file 如果在文本文件列表中找不到文件,批处理文件是否可以删除该文件?

Batch file 如果在文本文件列表中找不到文件,批处理文件是否可以删除该文件?,batch-file,cmd,Batch File,Cmd,尝试编写一个批处理文件,该文件将循环遍历目录中的所有文件,如果在文本文件中找不到文件的第一部分,则删除 在images目录中,文件的名称如下: 1_a.jpg 1_b.jpg 1_c.jpg 2_a.jpg 3_a.jpg 3_b.jpg 在该文件中,列表为 2 3 所以现在我想删除 1_a.jpg 1_b.jpg 1_c.jpg 开始时使用: @echo off wget -N http://www.domain.com/imagelist.txt FOR /R C:\image-dir

尝试编写一个批处理文件,该文件将循环遍历目录中的所有文件,如果在文本文件中找不到文件的第一部分,则删除

在images目录中,文件的名称如下:

1_a.jpg
1_b.jpg
1_c.jpg
2_a.jpg
3_a.jpg
3_b.jpg
在该文件中,列表为

2
3
所以现在我想删除

1_a.jpg
1_b.jpg
1_c.jpg
开始时使用:

@echo off
wget -N http://www.domain.com/imagelist.txt
FOR /R C:\image-directory\ %%G IN (*.jpg) DO ??????? %%G

我被卡住了。

有没有办法向您发送一个特定的问题,看看您是否可以回答,或者我是否必须开始一个全新的线程?如果您遇到“找不到文件”(在windows 10上),请从此部分
%folder%\%%F中删除“(引号)”“
@Willmore-为了解决这个问题,我以不同的方式编辑了我的答案。最好在SET语句中将引号移到变量名之前,然后在DIR和FINDSTR命令中的路径周围添加引号。但是感谢您指出这个问题(这是批处理的一般问题,而不仅仅是Win 10)。有没有办法向您发送一个特定的问题,看看您是否可以回答,或者我是否需要启动一个全新的线程?如果您遇到“找不到文件”(在windows 10上),请从此部分
“%folder%\%%F中删除“(引号)”“
@Willmore-为了解决这个问题,我以不同的方式编辑了我的答案。最好在SET语句中将引号移到变量名之前,然后在DIR和FINDSTR命令中的路径周围添加引号。但是感谢您指出这个问题(这是一个批量的一般问题,而不仅仅是Win 10)。
@echo off
setlocal
set "folder=c:\somePath"
set "excludeFile=c:\somePath2\someFile.txt"
for /f "eol=: delims=" %%F in ('dir /b /a-d "%folder%" ^| findstr /vibg:"%excludeFile%"') do del "%folder%\%%F"