使用批处理文件删除具有条件的特定文件夹

时间:2016-07-26 00:09:05

标签: windows batch-file cmd

我是批处理脚本的新手,无法弄清楚如何编写批处理文件,删除具有 c:\ root 条件的特定文件夹。

条件:

  1. 如果文件夹名称不是“Paul”,“Mike”,“Daniel”和 “皮埃尔”
  2. 如果文件夹没有子文件夹或文件
  3. 动作:

    删除该文件夹。

    在我的示例中,应使用此批处理文件删除 c:\ root \ test1

      

    C:\根

         

    C:\根\保罗

         

    C:\根\麦克

         

    C:\根\麦克\分配

         

    C:\根\麦克\分配\ assignment1.txt

         

    C:\根\丹尼尔

         

    C:\根\丹尼尔\考试

         

    C:\根\皮尔

         

    C:\根\皮尔\ quiz.txt

         

    C:\根\ TEST1

         

    C:\根\ TEST2

         

    C:\根\ TEST2 \的test2.txt

    如果有任何不清楚的地方,请告诉我。

    非常感谢。

1 个答案:

答案 0 :(得分:2)

您可以从此批处理开始测试文件夹的大小是否等于0size=0),然后我们就可以将其删除!

试试这段代码,如果按预期得到输出,只需摆脱echo

@echo off
setlocal disabledelayedexpansion
set "folder=%~1"
if not defined folder set "folder=%cd%"
for /d %%a in ("%folder%\*") do (
    set "size=0"
    for /f "tokens=3,5" %%b in ('dir /-c /a /w /s "%%~fa\*" 2^>nul ^| findstr /b /c:"  "') do if "%%~c"=="" set "size=%%~b"
    setlocal enabledelayedexpansion
      If "!size!"=="0" Echo RD "%%~na"
    endlocal
    )
endlocal
pause
exit