如何删除名称中不包含特定字符串的所有文件

如何删除名称中不包含特定字符串的所有文件

我见过删除所有不符合特定模式的文件 - Windows 命令行

但是我还没有看到任何关于如何删除所有内容的信息不是其文件名中包含某个字符串。

如何删除文件夹及其子文件夹中所有文件名中不包含“MS”(区分大小写)的 zip 文件(其他文件不应受到影响)。

这些字母可能与其他字母相邻(例如,应保留名为“ABCMSABC”的文件名,因为其中包含“MS”,但应删除所有其他文件)。多个文件中都会包含“MS”。

答案1

如何删除文件夹/子文件夹中名称中不包含“MS”的 zip 文件?

使用以下批处理文件:

@echo off
setlocal disableDelayedExpansion
for /f "usebackq tokens=*" %%i in (`dir /a:-d /b /s *.zip ^| findstr /v "[\\][^\\]*MS[^\\]*$"` ) do (
  echo del /s /q %%i
)
endlocal

笔记:

  • echo当您对批处理文件的操作满意时,请删除。
  • 答案已更新评论经过德本汉姆允许包含字符串“MS”的目录
  • 答案已更新,以处理包含空格的文件名。

进一步阅读

答案2

lang-console
@echo off
setlocal disableDelayedExpansion
for /f "usebackq tokens=*" %%i in (`dir /a:-d /b /s *.zip ^| findstr /v " [\\][^\\]*ms[^\\]*$"` ) do (
del /s /q "%%i"
)
endlocal

相关内容