2016-07-26 122 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 
相關問題