我有一个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)
但这只是删除影片文件夹中的文件,不会删除没有我上面提到的特定单词的文件夹。
答案 0 :(得分:1)
您可以使用多种方法。例如,您可以使用findstr
并在文件上运行del
和rmdir
,而不必检查它们是什么,只需重定向到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 /?