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

Jos*_*phG 4 windows file-management powershell regex batch

我已经看到删除与特定模式不匹配的所有文件 - Windows 命令行

但是,我还没有看到有关如何删除文件名中包含特定字符串的所有内容的任何信息。

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

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

Dav*_*ill 5

如何删除名称中没有“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
Run Code Online (Sandbox Code Playgroud)

笔记:

  • echo当您对批处理文件的功能感到满意时,请删除。
  • 根据dbenham 的评论更新答案以允许包含字符串“MS”的目录
  • 答案已更新以处理包含空格的文件名。

进一步阅读

  • Windows CMD 命令行的 AZ 索引- Windows cmd 行相关的所有内容的极好参考。
  • del - 删除一个或多个文件。
  • dir - 显示文件和子文件夹的列表。
  • findstr - 在文件中搜索字符串。
  • for /f - 针对另一个命令的结果循环命令。