Veröffentlicht 22. Februar 200520 j Hi, ich habe folgendes Problem: Ich muß ein Batchskript schreiben, welches prüft, ob ein Verzeichnis leer ist oder nicht. Bisher habe ich noch keine Lösungen gefunden. Vielleicht findet sich hier ein schlaues Köpfchen. Greetz
22. Februar 200520 j also. hier eine kleine Loesung: Ausfuehrung erfolgt durch: batchfile Verzeichnis (Bsp: asd test <-- batchfile heisst asd, das Verzeichnis, dass du durchsuchen willst heisst "TEST", per definition im Batchfile unter "C:") @ECHO off :: asd.cmd dir c:\%1 |find "0 Datei(en)" >nul IF not errorlevel 1 ECHO. keine Dateien vorhanden IF errorlevel 1 ECHO. Dateien vorhanden have fun Sethju
22. Februar 200520 j dir c:\%1 |find "0 Datei(en)" >nul Und was, wenn es z.B. ein englisches Windows ist?
23. Februar 200520 j War das jetzt eine Scherzfrage? :cool: @ECHO off :: asd.cmd dir c:\%1|find " 0 File(s)" > NUL IF not errorlevel 1 ECHO. no files found IF errorlevel 1 ECHO. files found wenn ihr es auch noch auf russisch und griechisch und spanisch und überhaupt und sowieso wollt.... dann schreibt es selber Greetz Sethju
23. Februar 200520 j Oder so, unabhängig von der Sprache des Betriebssystems: @ECHO OFF FOR /F %%a IN ('DIR /A-D /B %1\*.* 2^>NUL') DO ( ECHO Deine Befehle... GOTO :EOF ) ECHO Keine Datei in "%~f1" gefunden Damit wird ein DIR-Befehl auf das angegebene Verzeichnis ausgeführt, der keine Ordner anzeigt und das einfache Ausgabeformat benutzt. Wenn nun irgendeine Datei gefunden wird, wird der Teil zwischen den Klammern ausgeführt und danach die FOR Schleife verlassen (:EOF ist eine unsichtbare Marke ganz am Ende der Datei). Ist der Ordner leer, wird normalerweise eine Fehlermeldung "Datei wurde nicht gefunden" ausgegeben; um dies zu unterdrücken, wird die Fehlerausgabe des DIR-Befehls nach NUL umgeleitet (-> ins Nirvana). So wird die FOR-Schleife dann 0 mal ausgeführt, es wird der letzte ECHO Befehl ausgeführt.
23. Februar 200520 j Hi _Martin_, danke. Du hast mir vorausgegriffen. Natürlich sollte es sprachunabhängig funktionieren. Ich werde Deinen Code direkt mal testen...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.