Windows批处理脚本,删除除一个之外的所有文件

时间:2014-05-14 02:50:32

标签: batch-file

我遇到了这个问题。我一直在尝试各种不同的方法,但这是我得到的最接近的方法。我试图在具有多个子目录的目录中删除具有特定文件扩展名的所有文件。但我想保留一个文件不被删除。以下是我的内容:

For /R "%userprofile%\AppData\Local\Microsoft\Internet Explorer\DOMStore" %%i in (*.xml) DO if not %%i==10.10.5[1].xml echo del /q %%I`

我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

因为for /r将完整的文件名传递给元变量 %%i,所以匹配永远不会成立。

使用if not %%~nxi==10.10.5[1].xml

只处理名称和扩展名。

元变量是批量 区分大小写的少数几个区域之一。对元变量的所有引用都必须在相同的情况下。

如果要删除的完整文件名可能包含空格(或其他分隔符/毒药字符),则删除目标应为"quoted"

相关问题