Was genau macht der CMD-Befehl: for /l %i in (1, 1, 1) do start cmd /c "cd / && dir /s && pause"?
Habe diesen Befehl hier im Forum gefunden und würde gerne mal wissen, was der genau macht. Wenn ich ihn in der Eingabeaufforderung einfüge und ausführe, öffnet sich ein weiteres Fenster der Eingabeaufforderung, in der haufenweise Dateien aufgelistet werden. Aber was genau wird da aufgelistet?
3 Antworten
Habe diesen Befehl hier im Forum gefunden...
Dann war er garantiert nicht von mir... (ich würde solchen Mist nie verzapfen)
hoyohoo hat das ganze schon weitgehend richtig beantwortet.
Neben der nutzlosen Zählschleife ist der Start-befehl syntaktisch falsch.
richtig wäre Start "Fenstername" [/schalter] auszuführende Datei [parameter]
start "" cmd /c "cd / & dir /s & pause"
die doppel-& sind an dieser Stelle totaler Quatsch.
de Befehl nach && wird nur ausgeführt wenn der vorherige Befehl ohne Fehler (%Errrorlevel%=0) ausgeführt wurde.
- Da CD / immer im Root-verzeichnis landet, wird er immer Fehlerfrei sein!
- Da cd / immer fehlerfrei ist, wird auch immer dir /s ausgeführt.
- Da dir /s im Root immer Fehlerfrei ist, wird auch pause immer ausgeführt.
ergo benötigt man keine Bedingte Ausführung.
Einfache & genügen um mehrere Befehle in einer Zeile zusammenzufassen.(dies ist nötig um mehere Befehle Am Stück in einer Kommandozeile an cmd zu übergeben...)
hier noch ein Beispiel für die bedingte Ausführung:
Demo.cmd
echo Bedingte Ausfuehrung bei keinem Fehler
dir nichtExistenteVerzeichniss && echo ich werde nur ausgefuert wenn ein verzeichnis existiert
echo:
echo Bedingte Ausfuehrung bei Fehler
dir nichtExistenteVerzeichniss || echo ordner existiert hier nicht
pause
ps: im übrigen hätte
dir /s "c:/"
oder
start "" cmd /c "dir /s "c:/" &pause
vollkommen genügt...
Also, laut Internet ist der Teil
for /l i% in (1,1,1) do
eine For Schleife, die bei 1 beginnt, bis 1 hochzählt in 1er Schritten. Was eigentlich so nicht benutzt werden würde, da es so den Befehl im Do-Teil nur ein mal ausführt.
Der Teil
start cmd /cStartet eine neue Eingabeaufforderung und führt den Befehl in "" dahinter aus, durch das /c schließt sich die Eingabeaufforderung danach wieder.
Der Teil
"cd / && dir /s && pause"macht folgendes: Zunächst ändert "cd / " das Aktuelle Verzeichnis zu C:\
Dann wird darauf folgend mit && der Befehl "dir /s" ausgeführt, das alle dateien in C:\ nun auflistet, angefangen vom kleinsten (von der Größe her). Und schließlich && pause, das pausiert die Eingabeaufforderung an diesem Punkt, nun hat man also alle Dateien als Liste, die auf der Festplatte C sind, von klein nach groß sortiert...
Warum allerdings die Schleife drin ist, ist mir Rätselhaft.
PS: Je nach Anzahl der Dateien ist das ein sehr lange andauernder Befehl. Falls du das ausführst und irgendwann abbrechen willst, die Tastenkombi "STRG+C" unterbricht Programme im CMD.
Guck... Lade dir Virtual Box herunter, erstelle einen virtuellen Computer und probier diesen cmd Command aus :) eine Virtuelle Maschine kann völlig kaputt gehen und dein Computer bleibt unversehrt :)
Es kann auch so nichts kaputt gehen, weil lediglich Dateien aufgelistet werden.