我有一个包含文件列表的文件夹。我正在使用以下命令删除除所需文件以外的所有文件。如果名称中包含空格,则以下命令将失败。说“带有space.txt的文件名”或“文件1.txt”
for /f %F in ('dir /b /a-d ^| findstr /vile "file1 file2 file3"') do del "%F"
我尝试将文件名放在“”中,但没有成功。
答案 0 :(得分:2)
FINDSTR
命令有两个选项可以完成此操作。
第一个方法是使用/C
选项分别列出每个文件。
for /f "delims=" %F in ('dir /b /a-d ^| findstr /V /I /L /E /C:"file1" /C:"file2" /C:"file3"') do del "%F"
另一种选择是将所有搜索字符串放入一个文件中,每行一个,并使用/ G选项。
for /f "delims=" %F in ('dir /b /a-d ^| findstr /V /I /L /E /G:"search.txt"') do del "%F"