Was genau macht der CMD-Befehl: for /l %i in (1, 1, 1) do start cmd /c "cd / && dir /s && pause"?

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
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Erzesel  07.01.2020, 12:36

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 /c

Startet 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.

Woher ich das weiß:Recherche

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 :)


timlg07  16.01.2020, 17:17

Es kann auch so nichts kaputt gehen, weil lediglich Dateien aufgelistet werden.

Giaenuuu  16.02.2020, 00:47
@timlg07

Ich denke nicht nur für den Command sondern allgemein für Commands...