批量删除未指定的文件

时间:2015-12-12 04:44:52

标签: batch-file

我正在创建批处理文件以快速删除特定文件夹中的所有文件(我在很多地方都有很多文档)。我试图删除每个文件,除了我正在运行它的批处理文件。我试图使用IF NOT语句,但我似乎无法使其工作。这是我的IF声明:

if not "%%a" == *Delete.bat" (

其中%% a是我正在测试的文件是否删除它。我很确定该错误来自该声明的" %% a":部分,但我无法证实这一点。

注意: 当我运行该文件时,它会删除包括其自身在内的所有内容。

2 个答案:

答案 0 :(得分:1)

if无法使用通配符。因此,只要您的批处理文件不以文字星号开头(不太可能,因为*不是文件名的有效字符),这将不起作用。

Aacinis评论显示了你要走的路:

if /I "%%a" neq "%~NX0" del "%%a"

"%~NX0"评估批处理文件的 N ame和e X 张力

答案 1 :(得分:0)

确实如果语句不能使用通配符。 要做你想做的事,将通配符放在for循环中而不是if语句

:: to navigate to the directory of the file
Cd "%~dp0"
for /f %%a in (*.*) do (
   if not "%%a" == "delete.bat" (
       del "%%a"
))

将会这样做