Freigeben über


Cmd

Startet eine neue Instanz des Befehlsdolmetschers, cmd.exe. Wenn sie ohne Parameter verwendet wird, cmd werden die Versions- und Copyrightinformationen des Betriebssystems angezeigt.

Hinweis

Benutzer, die erweiterte Funktionen suchen, werden ermutigt , PowerShell für erweiterte Skripts und Automatisierung zu erkunden.

Syntax

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

Die Parameter

Parameter BESCHREIBUNG
/c Führt den angegebenen Befehl aus <string> und beendet dann den Befehlsprozessor.
/k Führt den angegebenen Befehl aus <string> und hält den Befehlsprozessor aktiv.
/s Bei Verwendung mit /c oder /kwerden spezielle Nichtanalyseregeln ausgelöst, die die ersten und letzten Anführungszeichen (") um den <string> Rest des Befehls unverändert entfernen.
/q Deaktiviert Echo.
/d Deaktiviert die Ausführung von AutoRun-Befehlen.
/ein Formatiert die Befehlsausgabe als American National Standards Institute (ANSI).
/u Formatiert die Befehlsausgabe als Unicode.
/t:{<b><f> | <f>} Legt die Hintergrundfarben (b) und Vordergrund (f) fest.
/e:on Aktiviert Befehlserweiterungen.
/e:off Deaktiviert Befehlserweiterungen.
/f:on Aktiviert den Abschluss von Datei- und Verzeichnisnamen.
/f:off Deaktiviert den Abschluss von Datei- und Verzeichnisnamen.
/v:on Aktiviert verzögerte Umgebungsvariablenerweiterung.
/v:off Deaktiviert die verzögerte Erweiterung der Umgebungsvariable.
<string> Gibt den Befehl an, den Sie ausführen möchten.
/? Zeigt die Hilfe an der Eingabeaufforderung an.

In der folgenden Tabelle sind gültige Hexadezimalziffern aufgeführt, die Sie als Werte für <b> und <f>:

Wert Farbe
0 Schwarz
1 Blau
2 Grün
3 Wasser
4 Rot
5 Lila
6 Gelb
7 Weiß
8 Grau
9 Hellblau
ein Lichtgrün
b Helles Aqua
c Hellrot
d Hell lila
e Hellgelb
f Hellweiß

Bemerkungen

  • Verwenden Sie den Pipe(|)-Operator, um die Befehlsausgabe an die Eingabe eines anderen Befehls umzuleiten. Beispiel:

    <command1> | <command2>
    
  • Der Operator double pipe (||) wird nur verwendet, um den nächsten Befehl auszuführen, wenn der vorherige Befehl fehlschlägt. Im angegebenen Szenario wird nur ausgeführt, command2 wenn command1 ein Fehler auftritt. Beispiel:

    <command1> || <command2>
    
  • Um die Befehlsausgabe an eine Datei umzuleiten, verwenden Sie das eckige eckige Klammerzeichen > . Beispiel:

    <command1> > <file1.txt>
    
  • Verwenden Sie &zum Gruppieren oder Schachteln mehrerer Befehle . Beispiel:

    <command1> & <command2>
    
  • Wenn Sie mehrere Befehle verwenden <string>möchten, trennen Sie sie durch das Befehlstrennzeichen &&. Beispiel:

    <command1> && <command2> && <command3>
    

    Hinweis

    Wenn Sie diesen Befehl verwenden &&, wird der folgende && Befehl nur ausgeführt, wenn der vorherige Befehl erfolgreich abgeschlossen ist. Cmd führt den ersten Befehl aus und fährt nur dann mit dem nächsten fort, wenn der vorherige Befehl erfolgreich war. Andernfalls werden die nachfolgenden Befehle nicht ausgeführt, wenn der vorherige Befehl fehlschlägt.

  • Bei den Kaufmännischen Und-Zeichen&, |Klammern und Klammern handelt es sich um Sonderzeichen, denen das Escapezeichen ( ) oder Anführungszeichen ^ vorangestellt werden muss, wenn Sie sie als Argumente übergeben.

  • Wenn ein Befehl einen Vorgang erfolgreich abgeschlossen hat, wird ein Exitcode von Null (0) oder kein Exitcode zurückgegeben.

  • Wenn der Verzeichnispfad, die Dateien oder informationen, die Sie bereitstellen, Leerzeichen enthalten, müssen Sie doppelte Anführungszeichen (" ") um den Text verwenden, z "Computer Name". B. . Beispiel:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • Sie müssen Anführungszeichen um die folgenden Sonderzeichen setzen: & <> [ ] | { } ^ = ; ! ' + , ' ~ [Leerzeichen].

  • Wenn Sie die Prozesse angeben /c oder, /kwerden der Rest von cmd, und die Anführungszeichen nur beibehalten, wenn alle folgenden Bedingungen erfüllt <string> sind:

    • Sie verwenden /snicht auch .
    • Sie verwenden genau eine Reihe von Anführungszeichen.
    • Sie verwenden keine Sonderzeichen innerhalb der Anführungszeichen, z. B. : & <> ( ) @ ^ |.
    • Sie verwenden ein oder mehrere Leerzeichen innerhalb der Anführungszeichen.
    • Die <string> in Anführungszeichen befindlichen Anführungszeichen sind der Name einer ausführbaren Datei.

    Wenn die vorherigen Bedingungen nicht erfüllt sind, wird das erste Zeichen verarbeitet, um zu überprüfen, <string> ob es sich um ein öffnende Anführungszeichen handelt. Wenn das erste Zeichen ein öffnende Anführungszeichen ist, wird es zusammen mit dem schließenden Anführungszeichen entfernt. Jeder Text, der auf die schließende Anführungszeichen folgt, wird beibehalten.

  • Wenn Sie nicht angeben /d, cmd wird nach den folgenden Registrierungsunterschlüsseln gesucht:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    Wenn ein oder beide Registrierungsunterschlüssel vorhanden sind, werden sie vor allen anderen Variablen ausgeführt.

  • Sie können Befehlserweiterungen für einen bestimmten Prozess mithilfe von /e:off. Sie können Erweiterungen für alle cmd Befehlszeilenoptionen auf einem Computer oder einer Benutzersitzung aktivieren oder deaktivieren, indem Sie die folgenden REG_DWORD Werte festlegen:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    Legen Sie den REG_DWORD Wert entweder auf 0×1 (aktiviert) oder auf 0×0 (deaktiviert) in der Registrierung fest, indem Sie Regedit.exeverwenden. Vom Benutzer angegebene Einstellungen haben Vorrang vor Computereinstellungen, und Befehlszeilenoptionen haben Vorrang vor Registrierungseinstellungen.

    Vorsicht

    Durch eine fehlerhafte Bearbeitung der Registrierung können ernsthafte Systemschäden verursacht werden. Bevor Sie Änderungen an der Registrierung vornehmen, sollten Sie alle wichtigen Computerdaten sichern.

  • Wenn Sie Befehlserweiterungen aktivieren, sind die folgenden Befehle betroffen:

    • assoc
    • call
    • chdir (cd)
    • color
    • del (erase)
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdir (md)
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (enthält auch Änderungen an externen Befehlsprozessen)
  • Wenn Sie eine verzögerte Erweiterung der Umgebungsvariable aktivieren, können Sie das Ausrufezeichen (!) verwenden, um den Wert einer Umgebungsvariable zur Laufzeit zu ersetzen.

  • Der Abschluss von Datei- und Verzeichnisnamen ist standardmäßig nicht aktiviert. Sie können den Dateinamenabschluss für einen bestimmten Prozess des cmd Befehls aktivieren oder deaktivieren./f:{on | off}

  • Sie können den Abschluss von Datei- und Verzeichnisnamen für alle Prozesse des cmd Befehls auf einem Computer oder für eine Benutzeranmeldungssitzung aktivieren oder deaktivieren, indem Sie die folgenden REG_DWORD Werte festlegen:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    Um den REG_DWORD Wert festzulegen, führen Sie Regedit.exe aus, und verwenden Sie den Hexadezimalwert eines Steuerelementzeichens für eine bestimmte Funktion (z. B. 0×9 ist TAB und 0×08 ist RÜCKTASTE). Verwenden Sie den [0×20]-Wert für Leerzeichen, da es sich nicht um ein gültiges Steuerelementzeichen handelt. Vom Benutzer angegebene Einstellungen haben Vorrang vor Computereinstellungen, und Befehlszeilenoptionen haben Vorrang vor Registrierungseinstellungen.

    Vorsicht

    Durch eine fehlerhafte Bearbeitung der Registrierung können ernsthafte Systemschäden verursacht werden. Bevor Sie Änderungen an der Registrierung vornehmen, sollten Sie alle wichtigen Computerdaten sichern.

  • Wenn Sie den Abschluss von Datei- und Verzeichnisnamen mithilfe von /f:onSTRG+D aktivieren, verwenden Sie STRG+D für den Abschluss des Verzeichnisnamens und STRG+F für den Abschluss des Dateinamens. Der einzige Unterschied zwischen den Tastenkombinationen STRG+D und STRG+F besteht darin, dass STRG+D nur verzeichnisnamen entspricht und STRG+F sowohl Datei- als auch Verzeichnisnamen entspricht. Wenn Sie den Abschluss von Datei- und Verzeichnisnamen für die integrierten Verzeichnisbefehle cdoder mdrddie Verzeichnisvervollständigung verwenden, wird davon ausgegangen.

  • Durch Drücken von STRG+D oder STRG+F wird der Datei- und Verzeichnisname abgeschlossen. Diese Tastenkombinationsfunktionen fügen ein Wildcardzeichen an <string> , wenn eins nicht vorhanden ist, erstellen Sie eine Liste der Pfade, die übereinstimmen, und zeigen Sie dann den ersten übereinstimmenden Pfad an. Wenn keine der Pfade übereinstimmen, ändert sich die Anzeige nicht durch die Funktion zum Abschließen von Datei- und Verzeichnisnamen.

    • Um durch die Liste der übereinstimmenden Pfade zu navigieren, drücken Sie wiederholt STRG+D oder STRG+F .
    • Um rückwärts durch die Liste zu navigieren, drücken Sie die UMSCHALTTASTE und STRG+D oder STRG+F gleichzeitig.
    • Um die gespeicherte Liste der übereinstimmenden Pfade zu verwerfen und eine neue Liste zu generieren, bearbeiten <string> Und drücken Sie STRG+D oder STRG+F.
    • Wenn Sie zwischen STRG+D und STRG+F wechseln, wird die gespeicherte Liste der übereinstimmenden Pfade verworfen, und eine neue Liste wird generiert.
  • Der Abschluss von Datei- und Verzeichnisnamen verarbeitet Dateinamen ordnungsgemäß, die Leerzeichen oder Sonderzeichen enthalten, wenn Sie Anführungszeichen um den übereinstimmenden Pfad setzen.

  • Wenn Sie den Abschluss von Datei- und Verzeichnisnamen innerhalb <string>verarbeiten, wird an der Stelle, an <string> der der Abschluss verarbeitet wurde, ein Teil des Pfads rechts vom Cursor verworfen.

Verwenden von Umgebungsvariablen

Die cmd Umgebung der Befehlsshell wird durch Variablen definiert, die das Verhalten der Befehlsshell und des Betriebssystems bestimmen. Sie können das Verhalten der Befehlsshell-Umgebung oder der gesamten Betriebssystemumgebung definieren, indem Sie zwei Typen von Umgebungsvariablen, System und lokal verwenden. Systemumgebungsvariablen definieren das Verhalten der globalen Betriebssystemumgebung. Lokale Umgebungsvariablen definieren das Verhalten der Umgebung der aktuellen Instanz von cmd.

Nur Benutzer mit Administratorrechten können Systemvariablen ändern. Diese Variablen werden am häufigsten in Anmeldeskripts verwendet. Lokale Umgebungsvariablen sind nur verfügbar, wenn der Benutzer, für den er erstellt wurde, am Computer angemeldet ist. Lokale Variablen, die in der HKEY_CURRENT_USER Struktur festgelegt sind, sind nur für den aktuellen Benutzer gültig, definieren jedoch das Verhalten der globalen Betriebssystemumgebung.

In der folgenden Liste werden die verschiedenen Variablentypen in absteigender Reihenfolge der Rangfolge beschrieben:

  1. Integrierte Systemvariablen.
  2. In der HKEY_LOCAL_MACHINE Struktur gefundene Systemvariablen.
  3. Lokale Variablen in der HKEY_CURRENT_USER Struktur gefunden.
  4. Alle Umgebungsvariablen und Pfade, die in der Autoexec.bat Datei festgelegt sind.
  5. Alle Umgebungsvariablen und Pfade, die in einem Anmeldeskript (sofern vorhanden) festgelegt sind.
  6. Variablen, die interaktiv in einer Skript- oder Batchdatei verwendet werden.

In der Befehlsshell erbt jede Instanz cmd die Umgebung der übergeordneten Anwendung. Daher können Sie die Variablen in der neuen cmd Umgebung ändern, ohne dass sich dies auf die Umgebung der übergeordneten Anwendung auswirkt.

Sie können die Umgebungsvariablen in Ihrer Umgebung anzeigen, indem Sie einen der folgenden Befehle ausführen:

set
Get-ChildItem Env:

Festlegen von Umgebungsvariablen

Um eine Variable anzuzeigen, geben Sie Folgendes ein:

set <VariableName>

Um eine Variable hinzuzufügen, geben Sie Folgendes ein:

set <VariableName>=<value>

Um eine Variable zu löschen, geben Sie Folgendes ein:

set <VariableName>=

Sie können die meisten Zeichen als variable Werte verwenden, einschließlich Leerzeichen. Wenn Sie die Sonderzeichen <, >|, &, &oder ^verwenden, müssen Sie ihnen das Escapezeichen ^oder doppelte Anführungszeichen voranstellen. Wenn Sie doppelte Anführungszeichen verwenden, werden sie als Teil des Werts eingeschlossen, da alles, das dem Gleichheitszeichen folgt, als Wert verwendet wird. Betrachten Sie die folgenden Beispiele:

Um den Variablenwert New&Namezu erstellen, geben Sie Folgendes ein:

set <VariableName>=New^&Name

Um den Variablenwert "New&Name"zu erstellen, geben Sie Folgendes ein:

set <VariableName>="New&Name"

Wenn Sie an der Eingabeaufforderung (ohne karat set <VariableName>=New&Name oder doppelte Anführungszeichen) eingeben ^ , wird möglicherweise die folgende Fehlermeldung angezeigt:

"'Name' is not recognized as an internal or external command, operable program or batch file."

Bei Variablennamen wird die Groß-/Kleinschreibung nicht beachtet. Zeigt die Variable jedoch genau so an, set wie Sie sie eingegeben haben. Sie können Groß- und Kleinbuchstaben in Ihren Variablennamen kombinieren, um ihren Code besser lesbar zu machen, z. B. "UserName".

Hinweis

  • Die maximale Größe einzelner Umgebungsvariablen beträgt 8.192 Byte.
  • Die maximale Gesamtgröße für alle Umgebungsvariablen, einschließlich Namen, Werten und Gleichheitszeichen, beträgt 65.536 Zeichen für einen Prozess.

Ersetzen von Umgebungsvariablenwerten

Um Variablenwerte in der Befehlszeile oder Skripts zu ersetzen, schließen Sie den Variablennamen in Prozentzeichen ein (%VariableName%). Dadurch kann cmd anstelle von Literaltext auf den Wert der Variablen verwiesen werden. Wenn ein Skript ausgeführt wird, cmd werden Instanzen der Variablen durch ihren Wert ersetzt. Beispielsweise ersetzt die Verwendung von %USERNAME% in einem Skript automatisch den tatsächlichen Benutzernamen. Variablenersetzung ist nicht rekursiv; cmd Überprüft Variablen nur einmal.