2016-07-26 121 views
2

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

条件:

  1. 如果文件夹名称不是“保”,“迈克”,“丹尼尔”和 “皮埃尔”
  2. 其他如果文件夹没有子文件夹或文件

操作:

删除该文件夹。

在我的例子中,c:\ root \ test1应该用这个批处理文件删除。

C:\根

C:\ ROOT \保罗

C:\ ROOT \麦克

C:\ ROOT \麦克\分配

C:\根\ Mike \ assignment \ assign1.txt

c:\ root \ Daniel

C:\根\丹尼尔\考试

C:\根\皮尔

C:\根\皮尔\ quiz.txt

C:\根\ TEST1

C:\根\ TEST2

C:\ ROOT \ TEST2 \的test2.txt

请让我知道,如果有不清楚的地方。

非常感谢。

+0

见'if'和'for'命令来启动。 '如果/?'和'for /?' – 2016-07-26 00:21:40

回答

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 
相关问题