我需要一个bat来删除包含在文本文件中的RELATIVE名称的所有文件
在files目录中,文件的名称如下:
2
3
在要删除RELATIVE名称的文件列表中
1_a.jpg
1_b.jpg
1_c.jpg
我想删除包含2和3的所有文件(在文件列表中指定)
删除后保留在我的文件夹中这些文件(因为不包含2或3)
@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"
我尝试了批处理文件,但我需要撤消它,因为这个bat不会删除文本列表中指定的文件
{{1}}
你能帮我吗?
这里有反向删除文件列表中的文件的代码。
答案 0 :(得分:1)
for /f "usebackq delims=" %%a in ("file.txt") do echo del "*%%a*"
对于文件中的每个元素,删除名称中包含指定文本的文件。
del
命令仅回显给控制台。如果输出正确,请删除echo
。
答案 1 :(得分:0)
其中LIST是具有“2”和“3”
的文件的名称pushd %folder%
for /f %%a in (%LIST%) do @del %%a_*.jpg
popd
要删除除这些文件以外的所有文件,首先列出匹配的文件,然后使用FOR,删除其他所有文件:
set folder=C:\somepath\subdir
set LIST=C:\somepath\list.txt
set excludeFile=C:\somepath\tmp.txt
if exist %excludeFile% del %excludeFile%
for /f %%a in (%LIST%) do (
dir %%a_*.jpg > nul && dir /b %%a_*.jpg >> %excludeFile%
)
for /f "eol=: delims=" %%F in ('dir /b /a-d %folder% ^| findstr /vibg:%excludeFile%') do del "%folder%\%%F"