Freigeben über


Befehlszeilenzeichenfolgeneinschränkung (Cmd. exe) der Eingabeaufforderung

In diesem Artikel wird die Einschränkung auf die Länge der Zeichenfolgen beschrieben, die Sie über die 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 zum Ausführen von Batchdateien verwenden, gilt diese Einschränkung auch für die Batchdateiverarbeitung.

Beispiele

Die folgenden Beispiele zeigen, wie diese Einschränkung auf Befehle angewendet wird, die Sie in der Eingabeaufforderung ausführen, und 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 zum Ausführen der Batchdatei verwenden.

  • In der Eingabeaufforderung kann die Gesamtlänge nach EnvironmentVariable1 dem Erweitern EnvironmentVariable2 und EnvironmentVariable3 darf 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-Beschränkung für Umgebungsvariablen 32.767 Zeichen beträgt, ignoriert die Eingabeaufforderung alle Umgebungsvariablen, die vom übergeordneten Prozess geerbt werden, und sind länger als ihre 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

Wenn Sie die Einschränkung umgehen möchten, verwenden Sie eine oder mehrere der folgenden Methoden, je nach Ihrer Situation:To work around the limitation, use one or more of the following methods, as appropriate to your situation:

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

    Ändern Sie z. B. anstelle der ExecutableFile.exe Parameter1 Parameter2... ParameterN Befehlszeile in einer Batchdatei das Programm so, dass eine Befehlszeile verwendet wird, 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 PATH-Umgebungsvariable beispielsweise mehr als 8191 Zeichen enthält, verwenden Sie eine oder mehrere der folgenden Methoden, um die Anzahl der Zeichen zu verringern:

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