Liste der Windows-eigenen Kommandos
dir
BefehlKurzbeschreibung
Syntax
Beispiele
leere Verzeichnisse löschen
Existiert ein bestimmtes Verzeichnis?
Dateiname rekursiv suchen
Status des cmd-Fensters mit Farbe und Titel kennzeichnen
Befehl | dir |
Kurzbeschreibung | Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf. |
Syntax | Kommando zum Anzeigen der Hilfe: dir /? Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf. DIR [Laufwerk:][Pfad][Dateiname] [/A[[:]Attribute]] [/B] [/C] [/D] [/L] [/N] [/O[[:]Folge]] [/P] [/Q] [/S] [/T[[:]Zeit]] [/W] [/X] [/4] [Laufwerk:][Pfad][Dateiname] Bezeichnet Laufwerk, Verzeichnis und/oder Dateien. /A Listet Dateien mit angegebenen Attributen auf. Attribute D Verzeichnisse R Schreibgeschützte Dateien H Versteckte Dateien A Zu archivierende Dateien S Systemdateien - vorangestellt kehrt die Bedeutung um /B Einfaches Format (keine Kopfdaten, keine Zusammenfassung). /C Zeigt das Tausendertrennzeichen bei Dateigrößen an (Standard- einstellung). Verwenden Sie /-C, um das Tausendertrennzeichen nicht anzuzeigen. /D Gleich wie Breitformat, jedoch nach Spalten sortiert. /L Verwendet Kleinschreibung. /N Neues, langes Listenformat (Dateinamen auf der rechten Seite). /O Gibt die Liste sortiert aus. Folge N Name (alphabetisch) S Größe (kleinere zuerst) E Erweiterung (alphabetisch) D Datum/Zeit (ältere zuerst) G Verzeichnisse zuerst - vorangestellt kehrt die Reihenfolge um /P Pausiert nach jeder vollen Bildschirmseite. /Q Gibt den Besitzer der Datei aus. /S Listet Dateien und alle Unterverzeichnisse auf. /T Bestimmt welche Zeit verwendet wird (nur für NTFS). Zeit C Erstellung A Letzter Zugriff W Letzter Schreibzugriff /W Verwendet Breitformat für die Auflistung. /X Zeigt die Kurznamen für Dateien mit Nicht-8Punkt3-Namen an. Das Format ist das gleiche wie bei /N, wobei der Kurzname vor dem Langnamen eingefügt wird. Wenn kein Kurzname vorhanden ist, werden Leerzeichen angezeigt. /4 Zeigt das Jahr vierstellig an. Optionen können in der Umgebungsvariablen DIRCMD voreingestellt werden. "-" vor einer Option setzt die Voreinstellung außer Kraft, z.B. DIR /-W. |
Beispiele |
leere Verzeichnisse löschenMan kann das RD-Kommando ansetzen und per Default nicht(!) rekursiv löschen. Der Fehlerkanal wird ins Nul-Device geleitet. Verzeichnisse, die gelöscht werden konnten, werden ausgegeben.Dann braucht man natürlich noch eine Liste der Verzeichnisse das geht mit rekursiv mit dir /s und Berücksichtigung der Dateiattribute. Damit tieferliegende Verzeichnisebenen zuerst durchsucht werden, drehen wir einfach die Sortierreihenfolge um. set startdir="d:\irgendwo\" FOR /F "tokens=* delims=" %%a in ('dir /AD /B /S "%startdir%" ^| sort /R' ) do ( RD "%%a" 2>nul && echo ^> %%a ) s.a. » for » sort Existiert ein bestimmtes Verzeichnis?Wiederum kann man dies mit "if exist" prüfen. Genaugenommen prüft exist das Vorhandensein von einer Datei oder aber einem Verzeichnis. Um abzusichern, dass es sich um ein Verzeichnis und eben nicht um eine Datei handelt, kann man auf das Gerät nul zurückgreifen. Dieses befindet sich scheinbar in jedem Verzeichnis:if exist [Verzeichnis]/nul [auszuführendes Kommando, wenn Datei existiert] Anbei eine Bat-Datei, die prüft, ob der erste übergebene Parameter ein existierendes Verzeichnis ist: @echo off if exist %1/nul goto TUWAS echo ERROR: Verzeichnis "%1" nicht gefunden! goto ENDE :TUWAS echo Jepp - das Verzeichnis "%1" existiert... - ich liste es auf: dir "%1" :ENDE Eine andere Möglichkeit wäre der Aufruf des dir-Kommandos, wo man mit Hilfe des Parameters /a die gewünschten File-Attribute angibt. dir /a:d "%1" >nul s.a. » if Dateiname rekursiv suchenMit einemdir /s /b [Startpfad/[Dateifilter]]lassen sich Dateien rekursiv mit kompletten Pfad auflisten. So kann man mit dir /s /b %WINDIR%\*.exeAlle *.exe Dateien auflisten. Mit einem nachfolgenden findstr lässt sich diese Ausgabe (auch mit Regex) filtern. So z.B. alle .exe-Dateien, die mit "w" beginnen, "p" aufhören, aber nicht im "Download"-Verzeichnis sind: dir /s /b %WINDIR%\ | findstr "\\w.*p\.exe" | findstr /v "Download" s.a. » findstr Status des cmd-Fensters mit Farbe und Titel kennzeichnenDen Status der Arbeitsgänge kann man mit Hilfe von Bildschirmfarben kennzeichnen, z.B.
Das nachfolgende Beispiel-Skript durchsucht rekursiv die Laufwerke (entspr. Variable sDrive) nach Dateien und/ oder Ordnern nach einem regulären Ausdruck im Ordner- und Dateinamen. @echo off rem ------------------------------------------------------------ :: CONFIG rem ------------------------------------------------------------ set scriptname=Dateisuche :: zu durcsuchende Laufwerke set sDrives=C D E :: Farben set colWork=color 08 set colWait=color 17 rem ------------------------------------------------------------ :: MAIN rem ------------------------------------------------------------ %colWork% title %scriptname% echo xxxxx ORDNER/ DATEI-SUCHE xxxxx echo Dieses Skript sucht auf den Laufwerken %sDrives% echo Ordner und Dateinamen nach einem angegebenen Muster (Regex moeglich). %colWait% set /p dmuster=Dateimuster eingeben: if "%dmuster%"=="" exit %colWork% for %%d in (%sDrives%) do ( title %scriptname% - durchsuche %%d nach %dmuster% ... dir /s /b %%d:\ | findstr "%dmuster%" ) echo fertig. title %scriptname% - fertig. %colWait% pause && exit rem ------------------------------------------------------------ s.a. » color » exit » for » if » pause » set » title |