Windows命令删除所有文件(指定文件列表除外),其中文件名称中可能包含空格

时间:2018-11-15 17:38:20

标签: windows batch-file cmd

我有一个包含文件列表的文件夹。我正在使用以下命令删除除所需文件以外的所有文件。如果名称中包含空格,则以下命令将失败。说“带有space.txt的文件名”或“文件1.txt”

for /f %F in ('dir /b /a-d ^| findstr /vile "file1 file2 file3"') do del "%F"

我尝试将文件名放在“”中,但没有成功。

1 个答案:

答案 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"