Ordner mit einem Batch-File leeren

Wer unter Windows XP und aufwärts einen Ordner leeren möchte, wird sicher auf die Befehle del und rd stolpern, dann aber merken, dass keiner der Befehle in der Lage ist einen Ordner nur zu leeren.
Während del nur Dateien und keine Unterordner löscht, löscht rd gleich den ganzen Ordner und nicht nur die Files und Unterordner. So muss man zu einem kleinen Trick und einer Kombination von del und rd greifen.
Das sieht dann so aus:
For /F "Tokens=*" %%i IN ('Dir /AD /B "C:\ordner\"') DO RD /Q /S "c:\ordner\%%~i"
Del /Q /F "c:\ordner\*.*"

Batchscript verzögern

Bei einem Logon-Script im Geschäft hatte ich das Problem, dass es ab und zu die Netzlaufwerke verbindet, bevor die Netzwerkevrbindung zum Server richtig steht. Beim Windows-Server kann man da eine Verzögerung einstellen, das es sich aber um eine VPN-Verbindung handelt, geht das da nicht.
So habe ich im Script eine Verzögerung von ca 3 Sekunden eingebaut. Da es unter Windows aber keinen "sleep" Befehl wie unter Linux gibt, musste ich da einen Workaround machen. Mit einem ping an eine unbekannte Adresse kann man etwas Zeit schinden und mit den richtigen Parametern geht das ganz gut:
ping -n 3 -w 1000 1.2.3.4>nul

Prozess in der CMD beenden

Mit den Bordmitteln von Windows XP und Vista ist es sehr einfach einen Prozess über die CMD oder aus einer Batch datei zu beenden. Dazu kann man den Befehl taskkill benutzen. Mit taskkill /? erhält man eine Übersicht der Parameter und pratischerweise muss man dazu nicht mal die ID des Prozesses wissen. Ein kleines Beispiel:
taskkill /F /IM notepad.exe