批处理文件可删除没有特定单词的文件夹

时间:2019-03-27 12:05:13

标签: batch-file

我有一个Movie文件夹,其中包含以下结构:

C:\Movies\Movie Title 1
C:\Movies\Movie Title 2
C:\Movies\Movie Title 3 xyz
C:\Movies\Movie Title 4 xyz
C:\Movies\Movie Title 5
C:\Movies\Movie Title 6 xyz
C:\Movies\Movie Title 7.avi
C:\Movies\Movie Title 8.mp4

我要寻找的是一个批处理文件,可以在任务计划程序上运行该批处理文件,以删除所有没有单词xyz的文件夹(并且是内容),此外电影文件夹中的其他文件类型,例如:

C:\Movies\Movie Title 7.avi
C:\Movies\Movie Title 8.mp4

因此,由于执行批处理文件,我将只有:

C:\Movies\Movie Title 3 xyz
C:\Movies\Movie Title 4 xyz
C:\Movies\Movie Title 6 xyz

到目前为止,我的代码是:

set folder="C:\Movies\"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir *.* /q || del *.* /q)

但这只是删除影片文件夹中的文件,不会删除没有我上面提到的特定单词的文件夹。

1 个答案:

答案 0 :(得分:1)

您可以使用多种方法。例如,您可以使用findstr并在文件上运行delrmdir,而不必检查它们是什么,只需重定向到nul

@echo off
for /f "delims=" %%i in ('dir /b C:\Movies\ ^| findstr /vi "xyz"') do (
  del /Q "%%i">nul
  rmdir /Q/S "%%i">nul
)

可以随时从cmd.exe上阅读以上命令

  • findstr /?
  • for /?
  • if /?