我有一个文件夹(temp文件夹)三种文件删除文件夹中的所有文件,除非列表文件是使用批处理
1.txt
2.exe
3.txt
现在,我将使用批处理写脚本删除该文件夹中的所有文件除了一个文件(3.txt)。如何在脚本中编写它。我尝试使用
del temp /Q
但它会删除我的文件夹中的所有文件。我不想全部删除。我只想删除1.txt和2.exe。考虑文件的数量很大。
我有一个文件夹(temp文件夹)三种文件删除文件夹中的所有文件,除非列表文件是使用批处理
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
哪个版本批次/ Windows命令提示符您使用的是?我从来没有见过“除了”,并且当我尝试这个时,我有一个错误。此外,这个语法对于批处理来说看起来很奇怪... – BuvinJ
我认为你必须在路径上添加这个批处理:http://stackoverflow.com/a/558677/1952213 – Lupocci