Befehlszeilenzeichenfolgeneinschränkung (Cmd. exe)

In diesem Artikel wird die Einschränkung der Länge der Zeichenfolgen erläutert, die Sie an der Eingabeaufforderung in der Eingabeaufforderung (Cmd.exe) verwenden. Außerdem werden Methoden bereitgestellt, mit denen Sie diese Einschränkung umgehen können.

Gilt für: Windows Server 2012 R2, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1
Ursprüngliche KB-Nummer: 830473

Weitere Informationen

Die maximale Länge der Zeichenfolge, die Sie an der Eingabeaufforderung verwenden können, beträgt 8191 Zeichen.

Diese Einschränkung gilt für:

  • die Befehlszeile
  • einzelne Umgebungsvariablen, die von anderen Prozessen geerbt werden, z. B. die PATH-Variable
  • Alle Umgebungsvariablenerweiterungen

Wenn Sie die Eingabeaufforderung verwenden, um Batchdateien auszuführen, gilt diese Einschränkung auch für die Batchdateiverarbeitung.

Beispiele

Die folgenden Beispiele zeigen, wie diese Einschränkung für Befehle gilt, die Sie in der Eingabeaufforderung ausführen, und für Befehle, die Sie in einer Batchdatei verwenden.

  • In der Eingabeaufforderung darf die Gesamtlänge der folgenden Befehlszeile nicht mehr als 8191 Zeichen enthalten:

    cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
    
  • In einer Batchdatei darf die Gesamtlänge der folgenden Befehlszeile nicht mehr als 8191 Zeichen enthalten:

    cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
    

    Diese Einschränkung gilt für Befehlszeilen, die in Batchdateien enthalten sind, wenn Sie die Eingabeaufforderung verwenden, um die Batchdatei auszuführen.

  • In der Eingabeaufforderung darf die Gesamtlänge von nach dem EnvironmentVariable1 Erweitern EnvironmentVariable3EnvironmentVariable2 nicht mehr als 8191 Zeichen enthalten:

    c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
    
  • In einer Batchdatei darf die Gesamtlänge der folgenden Befehlszeile nach dem Erweitern der Parameter nicht mehr als 8191 Zeichen enthalten:

    ExecutableFile.exe parameter1 parameter2
    
  • Obwohl die Win32-Einschränkung für Umgebungsvariablen 32.767 Zeichen beträgt, ignoriert die Eingabeaufforderung alle Umgebungsvariablen, die vom übergeordneten Prozess geerbt werden und länger sind als die eigenen Einschränkungen von 8191 Zeichen (je nach Betriebssystem). Weitere Informationen zur SetEnvironmentVariable Funktion finden Sie unter SetEnvironmentVariableA-Funktion.

So umgehen Sie die Einschränkung

Um die Einschränkung zu umgehen, verwenden Sie je nach Situation eine oder mehrere der folgenden Methoden:

  • Ändern Sie Programme, die lange Befehlszeilen erfordern, sodass sie eine Datei verwenden, die die Parameterinformationen enthält, und fügen Sie dann den Namen der Datei in die Befehlszeile ein.

    Anstatt beispielsweise die ExecutableFile.exe Parameter1 Parameter2... ParameterN Befehlszeile in einer Batchdatei zu verwenden, ändern Sie das Programm so, dass es eine Befehlszeile verwendet, die der folgenden Befehlszeile ähnelt, wobei ParameterFile eine Datei ist, die die erforderlichen Parameter enthält (Parameter1 Parameter2... ParameterN):

    ExecutableFile.exe c:\temp\ParameterFile.txt
    
  • Ändern Sie Programme, die große Umgebungsvariablen verwenden, sodass die Umgebungsvariablen weniger als 8191 Zeichen enthalten.

    Wenn die Umgebungsvariable PATH beispielsweise mehr als 8191 Zeichen enthält, verwenden Sie eine oder mehrere der folgenden Methoden, um die Anzahl der Zeichen zu reduzieren:

    • Verwenden Sie kürzere Namen für Ordner und Dateien.
    • Reduzieren Sie die Tiefe von Ordnerstrukturen.
    • Speichern Sie Dateien in weniger Ordnern, sodass weniger Ordner in der PATH-Umgebungsvariablen erforderlich sind.
    • Untersuchen Sie mögliche Methoden, mit denen Sie die Abhängigkeit von PATH für die Suche nach .dll Dateien reduzieren können.