使用批处理文件删除除一个文件以外的所有文件

时间:2015-08-07 00:38:33

标签: batch-file

我有在WIn 7命令提示符下运行的批处理脚本。 它需要删除文件夹中除文件以外的所有文件" .a"延期。 我尝试了以下代码

for /F %%I in ("*") DO if not (%%~xI=="a") del /q %%I 

删除所有文件。 我试过以下:

for /F %%I in ("*") DO if not (%%~xI==a) del /q %%I 
没有运气。我哪里错了?

sedy

2 个答案:

答案 0 :(得分:1)

for /F循环将引号中的集合视为字符串,因此您要解析字符串“*”,这会导致delete命令被解释为del /q *,从而删除所有内容。

改为使用for /F %%I in ('dir /b'),它将根据当前目录中的文件列表进行处理。

答案 1 :(得分:0)

for /f "usebackq tokens=*" %%f in (`dir /b .\d\*`) do (
    if not %%~xf equ .a (echo deleting %%f)
)