FOR Schleife gibt einen Fehler aus, der sich mit Umleitung 2-zu-nul nicht unterdrücken lässt
Wieder fehlt es mir an der Idee der Lösung, weil es ja eigentlich kein Fehler ist, sondern die logische Konsequenz meines Befehls.
Was hab ich vor ?
Eine FOR Schleife die einen Ordner samt Unterordner nach Dateitypen durchsucht, FALLS diese gefunden werden do ...
Im Endeffekt eine Kombi aus FOR und IF, so der Gedankengang. So jetzt das kuriose, hier mein BAT Schnipsel:
So weit so gut, also die Funktion ist gegeben, der Befehl geht einwandfrei, aber ich habe einen kosmetischen Fehler .
Und zwar diese Schleife hier: for /F %%i in ('dir /b /s *.txt')
Befindet sich wenigstens eine txt Datei im genannten Ordner oder unterordner ist alles fein, er zeigt mir schön die Anzahl an.
Doch wenn keine TXT vorhanden ist, kommt logischerweise diese Fehlermeldung : Keine Datei(en) gefunden, welche widerlich im
CMD Display auftaucht. Also hab ich gedacht, KT, du bist n schlaues Kerlchen und schickst den Driet mit 2>nul ins Nirwana.
Funktioniert auch, aaaaaaaaber die Ausgabe in Zeile 3 sieht jetzt so aus: TXTFILES Files = [3 File(s)]. Wo zum Geier
zaubert der jetzt die "3" her wo ich in Zeile 1 TXTFILES mit "0" deklariere ?. Jetzt das interessante, mache ich 2>nul wieder weg,
beglückt mich wieder Keine Datei(en) gefunden, aber TXTFILE wird korrekt als "0" dargestellt. So oder so keine der beiden
Lösungen befriedigen mich. Es nutzt auch nix ne If Schleife hinter do zu setzen mit Errorlevel, weil der "Fehler der ja keiner ist"
bereits in der Schleife vorkommt.
Ich vermute der ganze Befehl ist so für den Popo, es gibt garantiert eine einfachere Art, einen Ordner samt Unterordner zu
durchsuchen und die Anzahl der gefundenen Dateien darzustellen ohne Fehlermeldung wenn KEINE gefunden wird.
Was hab ich vor ?
Eine FOR Schleife die einen Ordner samt Unterordner nach Dateitypen durchsucht, FALLS diese gefunden werden do ...
Im Endeffekt eine Kombi aus FOR und IF, so der Gedankengang. So jetzt das kuriose, hier mein BAT Schnipsel:
set TXTFILES=0
for /F %%i in ('dir /b /s *.txt') do set /A TXTFILES=TXTFILES+1 >nul
echo TXTFILES Files = [%TXTFILES% File(s)]
So weit so gut, also die Funktion ist gegeben, der Befehl geht einwandfrei, aber ich habe einen kosmetischen Fehler .
Und zwar diese Schleife hier: for /F %%i in ('dir /b /s *.txt')
Befindet sich wenigstens eine txt Datei im genannten Ordner oder unterordner ist alles fein, er zeigt mir schön die Anzahl an.
Doch wenn keine TXT vorhanden ist, kommt logischerweise diese Fehlermeldung : Keine Datei(en) gefunden, welche widerlich im
CMD Display auftaucht. Also hab ich gedacht, KT, du bist n schlaues Kerlchen und schickst den Driet mit 2>nul ins Nirwana.
Funktioniert auch, aaaaaaaaber die Ausgabe in Zeile 3 sieht jetzt so aus: TXTFILES Files = [3 File(s)]. Wo zum Geier
zaubert der jetzt die "3" her wo ich in Zeile 1 TXTFILES mit "0" deklariere ?. Jetzt das interessante, mache ich 2>nul wieder weg,
beglückt mich wieder Keine Datei(en) gefunden, aber TXTFILE wird korrekt als "0" dargestellt. So oder so keine der beiden
Lösungen befriedigen mich. Es nutzt auch nix ne If Schleife hinter do zu setzen mit Errorlevel, weil der "Fehler der ja keiner ist"
bereits in der Schleife vorkommt.
Ich vermute der ganze Befehl ist so für den Popo, es gibt garantiert eine einfachere Art, einen Ordner samt Unterordner zu
durchsuchen und die Anzahl der gefundenen Dateien darzustellen ohne Fehlermeldung wenn KEINE gefunden wird.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 325471
Url: https://administrator.de/contentid/325471
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
3 Kommentare
Neuester Kommentar