Es gibt keinen guten Grund dafür. Tatsächlich ist der einzige wirkliche Effekt, der eintritt, die Verlangsamung.
Die Leute denken vielleicht, dass es einen guten Grund gibt, dies zu tun. Die Verwendung von CMD hat die folgenden Auswirkungen, die in einigen Fällen häufig hilfreich sein können:
- Aktiviert interne Befehle wie "
DIR
"
- Legt Umgebungsvariablen fest, z. B. die Variable PATH
In diesem Fall wird jedoch keiner dieser Vorteile erzielt. Schauen wir uns diese beiden Szenarien an:
Daher kann es in einigen Fällen eine Zeit geben, in der die Verwendung von " CMD /C
" nützlich ist. Wenn ich beispielsweise den externen Befehl verwende PSEXEC
(von SysInternals heruntergeladen) und versuche, " DIR
" auf einem Remotecomputer auszuführen , wird Windows versuchen, den DIR
Befehl " " auszuführen . Windows kann diesen Befehl nicht ausführen, da keine " DIR.EXE
", " DIR.BAT
" oder " DIR
" Datei vorhanden ist, die mit einer anderen unterstützten Erweiterung endet. (Unterstützte Erweiterungen können durch Ausführen von " ECHO %PATHEXT%
" angezeigt werden .)
Wenn ich in diesem Szenario jedoch versuche, " CMD /C DIR
" auszuführen , funktioniert dies, da Windows nach einer ausführbaren Datei mit dem Namen " CMD
" sucht und diese findet und anschließend CMD
den DIR
internen Befehl erfolgreich ausführt Teil des CMD
Befehls " ".
In diesem Fall können Sie genauso powershell
einfach wie " CMD /C powershell
" ausführen , sodass Sie keinen Nutzen aus dem unnötigen " CMD /C
" ziehen. Der einzige Vorteil, den ich sehe, wenn ich den zusätzlichen Schritt der Eingabe von " CMD /C
" durchführe, ist die Angabe eines Beispiels, das nützlich ist, wenn jemand versucht, ein Beispiel zu ändern, um eine Befehlszeile " DIR
" oder " COPY
" auszuführen . Ein flexibleres Beispiel zu haben, kann für manche Menschen nützlich sein. Es ist wirklich nicht nötig, wenn die Leute wissen, was sie tun.
Was den zweiten Punkt betrifft, den ich angegeben habe, nämlich das Festlegen von Umgebungsvariablen, so tun Sie dies auch in diesem speziellen Fall nicht aktiv. Vielleicht denken einige Leute, dass sie helfen, indem sie dafür sorgen, dass die Umgebungsvariable PATH gesetzt wird. Wenn Sie jedoch Befehle direkt ausführen (z. B. über die Menüoption "Ausführen" des Startmenüs), sucht das Windows-Betriebssystem möglicherweise an einigen zusätzlichen Stellen nach Befehlen. In Windows XP / neuer können Sie beispielsweise Folgendes ausführen:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
Wenn der Befehl, den Sie ausführen möchten, unter "Anwendungspfade" aufgeführt ist, findet Windows das Programm möglicherweise auch dann, wenn es sich nicht im Pfad befindet. Windows wird wahrscheinlich sogar MEHR finden als nur das, was CMD in dem von CMD verwendeten PFAD finden würde.
Ein möglicher Vorteil ist, dass CMD so ausgeführt werden soll, dass auf eine Umgebungsvariable wie% USERPROFILE% oder% LOGONSERVER% oder% TEMP% /% TMP% verwiesen werden kann müssen " CMD /C
" ausführen .
Für Ihren speziellen Fall gibt es also keinen guten Grund, dies zu tun. Die Effekte, die Sie erzielen, bestehen darin, dass Ihr Computer mehr Arbeit leistet, den Prozess verlangsamt und mehr Speicher verbraucht (und dies alles in vernachlässigbarem Umfang auf modernen Geräten).
cmd /c
...cmd /k
unterscheidet sich dahingehend, dass das Fenster nach Abschluss des Befehls geöffnet bleibt . Vermutlich hat der Fragesteller das so gemacht, damit er die Ausgabe zu Debug-Zwecken sehen konnte.