2015-12-03 6 views
6

Ich habe Windows 7, Windows 8 und Windows 10 Systeme und sie alle verhalten sich ähnlich.Was ist der Unterschied zwischen Eingabeaufforderung und Befehl?

Wenn ich Eingabeaufforderung in das Startmenü eingeben und die Eingabetaste drücken, wird ein Fenster mit dem Titel Eingabeaufforderung angezeigt. Ich gab ihm einen blauen Hintergrund und einen grünen Text. Wenn ich start, cmd oder den Namen einer Fledermausdatei in die Befehlszeile eintippe, öffnet sich ein Fenster namens cmd, das ich mit einem Hintergrund aus schwarzem und grünem Text versehen habe. Es scheint, die Farben werden gespeichert, aber ... hmm ...

Wenn ich cmd in das Startmenü von Windows 10 eingeben, erscheint ein Fenster mit dem Titel "cmd", aber es ruft den blauen Hintergrund und grünen Text aus dem Befehl Eingabeaufforderungsfenster, aber Eingabe cmd von diesem Fenster öffnet ein neues gestyltes schwarz und grün. Wenn ich auf eine Stapeldatei doppelklicke, öffnet sich eine Eingabeaufforderung mit einem Fenster mit der Bezeichnung "Eingabeaufforderung" mit einer anderen Schriftart und einem schwarzen Hintergrund mit weißem Text. Wenn ich command tippe, druckt es nur die DOS- und copyrightheader, aber start command öffnet ein Fenster betitelt COMMAND.COM mit der unterschiedlichen Schriftartgesicht und dem schwarzen Hintergrund mit weißem Text.

Wenn der Typ cmd /? in eine Liste von Parametern auf dem Bildschirm erscheint. Einer von ihnen ist/Q. Es besagt, dass es in der neuen Instanz das Echo abstellt. Wenn ich cmd /Q entweder in der Eingabeaufforderung oder in cmd eintippe, wird das Fenster durch ein anderes ersetzt, das denselben Titel, aber das schwarze und grüne Farbschema verwendet, und das Echo wird NICHT ausgeschaltet. Wenn ich start cmd /q eintippe, tritt genau dasselbe auf, aber 'start cmd.exe/q' erzeugt tatsächlich einen Fehler, der besagt, dass/Q kein gültiger Schalter ist.

Das ist wirklich nur ein Bruchteil des Problems, mit dem ich hier konfrontiert bin, und ich kann nicht einmal damit anfangen, es zu sortieren. Wenn da draußen irgendein Veteran ist, der all die subtilen Unterschiede zwischen dem scheinbaren Hain von Befehlsaufforderungen und Möglichkeiten, sie zu nennen, kennt, würde ich es begrüßen, wenn diese Person das für mich durcheinander bringt.

+1

Probieren Sie "start" "cmd/Q" aus, da 'start' das erste Element als Fenstertitel und nicht als Befehl interpretieren kann. Daher könnte '/ Q' als Schalter für' start' und nicht für 'cmd' dienen ... – aschipfl

Antwort

9

Ich werde versuchen, etwas von der Verwirrung zu klären, aber ich kann einen perfekten Job nicht machen, weil Microsoft sichergestellt hat, dass die Unordnung unmöglich zu entwirren, und sie ändern das Chaos mit jeder Version von Windows. So können beispielsweise einige der Informationen, die ich bereitstellen möchte, möglicherweise nicht für Windows 8 und Windows 10 zutreffen. Sie galt jedoch bis einschließlich Windows 7.

"Eingabeaufforderung" ist der formale Name der Konsole Anwendung unter Windows. "cmd.exe" (oder nur "cmd") ist der Name der ausführbaren Binärdatei derselben Anwendung.

Windows speichert die Standard Einstellungen für die Eingabeaufforderung in der Registrierung unter HKEY_CURRENT_USER\Console. Wenn eine neue Eingabeaufforderung geöffnet wird, nimmt Windows den Fenstertitel dieser Eingabeaufforderung und versucht zu sehen, ob es einen Unterschlüssel unter HKEY_CURRENT_USER\Console\ mit diesem Namen gibt. Wenn es einen Unterschlüssel findet, liest es die Werte daraus.Wenn es keinen Unterschlüssel findet, liest es die Standardwerte, die es in HKEY_CURRENT_USER\Console findet.

Zum Beispiel gibt es auf meinem System einen Schlüssel HKEY_CURRENT_USER\Console\MySQL 5.6 Command Line Client - Unicode, wahrscheinlich, weil das MySQL-Installationsprogramm diesen Schlüssel erstellt hat, so dass ihre Eingabeaufforderung unterscheidet sich von anderen Instanzen der Eingabeaufforderung. Damit dies funktioniert, muss die Verknüpfung, die ihre Eingabeaufforderung startet, natürlich "MySQL 5.6 Befehlszeilen-Client - Unicode" als Fenstertitel der Eingabeaufforderung angeben.

Wenn Sie also Eingabeaufforderungen mit unterschiedlichen Stilen sehen, liegt das wahrscheinlich daran, dass Sie Einträge unter HKEY_CURRENT_USER\Console\ haben. Die Tatsache, dass es keinen Sinn ergibt, ist darauf zurückzuführen, dass der ausgewählte Unterschlüssel vom Titel des Eingabeaufforderungsfensters abhängt, der je nachdem, wie Sie ihn starten, unterschiedlich sein kann.

+0

Absolut brilliant! – Musixauce3000

+1

Vielen Dank !! – Musixauce3000

+0

Ich bin froh, Ihnen helfen zu können! (Noch ein glücklicher Kunde!) C -: = –

6

Eingabeaufforderung ist einfach eine Abkürzung „Eingabeaufforderung“ auf cmd.exe genannt:

enter image description here

Das Styling ist nur ein Ergebnis der Verknüpfung seiner eigenen Eigenschaften. Sie könnten auch andere Verknüpfungen zu cmd.exe haben, und jede davon könnte auch eigene Stiloptionen haben.

Wie für den Fenstertitel setzt cmd den Fenstertitel auf den Dateinamen, der cmd gestartet hat. Wenn Sie eine Verknüpfung zu cmd.exe erstellen und sie "my_shell" nennen. Sie erhalten ein cmd-Fenster mit dem Titel "my_shell".

+0

Sie sagen also, wenn ich Command Prompt in das Startmenü eingibt, gibt es eine Verknüpfung zu cmd.exe zurück, die mit dem formellen Namen "Command Prompt" betitelt wurde und das ist der einzige Grund, warum jemand jemals die Worte Command sehen sollte Eingabeaufforderung an der Spitze eines cmd.exe-Fensters? -Barring natürlich, wenn Benutzer Skripte explizit eine Zeile enthalten, um den Titel auf Eingabeaufforderung setzen -? – Musixauce3000

+0

@ Musixauce3000 genau. Sie können selbst sehen, ob Sie "Rechtsklick" -> "Eigenschaften" - "Eingabeaufforderung" in Ihrem Startmenü klicken. Oder von Ihnen 'Rechtsklick-> Öffnen Sie den Speicherort der Datei' es wird Sie zum Speicherort der Datei von cmd.exe –

+1

Vielen Dank. Dies in Kombination mit der Antwort von Mike hat mich in eine bessere Lage versetzt, um den Rest des Chaos zu verstehen, das ich nicht einmal in meiner Frage erreichen konnte: p Danke! – Musixauce3000