使用批量删除列表中文件以外的所有文件

我有一个文件夹(临时文件夹)中的三个文件

1.txt 2.exe 3.txt 

现在我将使用批处理来编写脚本来删除文件夹中除一个文件(3.txt)以外的所有文件。 如何写在脚本中。 我尝试使用

 del temp /Q 

但它会删除我的文件夹中的所有文件。 我不想全部删除。 我只想删除1.txt和2.exe。 考虑文件的数量大。

您可以使用该命令

 except 3.txt del temp /Q 

它将删除除3.txt以外的文件夹中的所有文件

如果循环访问目录的内容,则可以应用所需的任何逻辑,并对这些内容执行任何可能需要的操作。 例:

 @echo off setlocal enableextensions enabledelayedexpansion set dirPath=C:\Users\BuvinJ\Desktop\test pushd !dirPath! :: Loop through all files in this directory for %%a in (*) do ( set fileName=%%a if "!fileName!"=="1.txt" ( echo FOUND: !fileName! ) else ( echo OTHER: !fileName! ) ) :: Loop through all sub directories in this directory for /d %%a in (*) do ( set dirName=%%a echo Directory: !dirName! ) popd 

您可能还想要“递归”地浏览内容,即向下钻取嵌套的子目录。 为此,请在for语句之后添加/ r(例如,在示例中使用/ d来循环目录而不是文件)。

有关这种循环的更多信息,请查看: http : //ss64.com/nt/for2.html