删除文件夹中所有文件,但文件名中包含

时间:2018-12-19 18:47:26

标签: batch-file cmd

我正在尝试删除文件夹中除文件名包含字符串ntdll之外的所有文件。

这是我尝试过的:

for %i in (dlls/*) do if not %%i == %%i:ntdll del %%i
for %i in (*) do if not %i == %i:ntdll del %i

我尝试过findstr,但收效甚微。

1 个答案:

答案 0 :(得分:0)

您的语法错误。这是一个可能的解决方案(您需要延迟扩展):

for %A IN (*) do @set file=%A && if !file!==!file:ntdll=! (@del /F /A !file!)

使用cmd /v:on在cmd中启用延迟扩展。您被迫在代码块中使用它。

此简单命令搜索当前工作目录中的所有文件,为每个文件分配一个变量,并检查它们中是否包含字符串ntdll。如果没有,他们将其删除。

为更好地理解上述命令,请打开一个新的cmd并键入:

  • for /?
  • set /?
  • del /?

一些有趣的参考,供进一步阅读

相关问题