2016-07-26 19 views
2

Ich bin ein Neuling im Batch-Scripting und konnte nicht herausfinden, wie eine Batch-Datei schreiben bestimmte Ordner mit Bedingungen in c: \ root.Entfernen Sie bestimmte Ordner mit Bedingung (en) mit einer Batch-Datei

Bedingungen:

  1. Wenn die Ordnernamen andere sind als "Paul", "Mike", "Daniel" und "Pierre"
  2. Wenn der Ordner keine Unterordner hat oder

Aktion Datei:

diesen Ordner löschen . In meinem Beispiel c: \ root \ test1 sollte mit dieser Batch-Datei gelöscht werden

c: \ root

c: \ root \ Paul

c: \ root \ Mike

c: \ root \ Mike \ Zuordnung

c: \ root \ Mike \ Zuweisung \ Zuweisung1.txt

c: \ root \ Daniel

c: \ root \ Daniel \ Prüfung

c: \ root \ Pierre

c: \ root \ Pierre \ quiz.txt

c: \ root \ Test1

c: \ root \ test2

c: \ root \ test2 \ test2.txt

Bitte lassen Sie mich wissen, wenn etwas unklar ist.

Vielen Dank.

+0

Siehe 'if' und' for' beginnen Befehle. 'if /?' und 'for /?' –

Antwort

2

Sie können mit diesem Batch zu testen, ob die Größe des Ordners gleich 0 (size=0) dann können wir es entfernen!

geben Sie einfach einen Versuch für diesen Code und wenn Sie die Ausgabe erhalten, wie Sie erwartet, nur um loszuwerden der 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