我在文件夹(临时文件夹)中有三个文件
1.txt
2.exe
3.txt
现在我将批量编写脚本来删除文件夹中除一个文件(3.txt)之外的所有文件。如何在脚本中编写它。我尝试使用
del temp /Q
但它会删除我文件夹中的所有文件。我不想删除所有。我只想删除1.txt和2.exe。让我们考虑文件数量很大。
答案 0 :(得分:2)
如果循环遍历目录的内容,则可以应用您可能需要的任何逻辑,并对这些内容执行您可能需要的任何操作。例如:
@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
答案 1 :(得分:0)
您可以使用命令
except 3.txt del temp /Q
它将删除除3.txt
以外的文件夹中的所有文件