Limitazione della stringa della riga di comando del prompt dei comandi (Cmd. exe)

Questo articolo illustra la limitazione alla lunghezza delle stringhe usate dal prompt dei comandi nel prompt dei comandi (Cmd.exe). Fornisce anche metodi che è possibile usare per ovviare a questa limitazione.

Si applica a: Windows Server 2012 R2, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1
Numero KB originale: 830473

Ulteriori informazioni

La lunghezza massima della stringa che è possibile usare al prompt dei comandi è di 8191 caratteri.

Questa limitazione si applica a:

  • riga di comando
  • variabili di ambiente singole ereditate da altri processi, ad esempio la variabile PATH
  • tutte le espansioni di variabili di ambiente

Se si usa il prompt dei comandi per eseguire i file batch, questa limitazione si applica anche all'elaborazione di file batch.

Esempi

Gli esempi seguenti illustrano come questa limitazione si applica ai comandi eseguiti nel prompt dei comandi e ai comandi usati in un file batch.

  • Nel prompt dei comandi la lunghezza totale della riga di comando seguente non può contenere più di 8191 caratteri:

    cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
    
  • In un file batch, la lunghezza totale della riga di comando seguente non può contenere più di 8191 caratteri:

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

    Questa limitazione si applica alle righe di comando contenute nei file batch quando si usa il prompt dei comandi per eseguire il file batch.

  • Nel prompt dei comandi, la lunghezza totale di EnvironmentVariable1 dopo l'espansione EnvironmentVariable2EnvironmentVariable3 e non può contenere più di 8191 caratteri:

    c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
    
  • In un file batch, la lunghezza totale della riga di comando seguente dopo l'espansione dei parametri non può contenere più di 8191 caratteri:

    ExecutableFile.exe parameter1 parameter2
    
  • Anche se la limitazione Win32 per le variabili di ambiente è di 32.767 caratteri, il prompt dei comandi ignora tutte le variabili di ambiente ereditate dal processo padre e sono più lunghe delle proprie limitazioni di 8191 caratteri (in base alle esigenze del sistema operativo). Per altre informazioni sulla SetEnvironmentVariable funzione, vedere Funzione SetEnvironmentVariableA.

Come aggirare la limitazione

Per ovviare alla limitazione, usare uno o più dei metodi seguenti, in base alla situazione:

  • Modificare i programmi che richiedono righe di comando lunghe in modo che usino un file contenente le informazioni sui parametri e quindi includano il nome del file nella riga di comando.

    Ad esempio, anziché usare la ExecutableFile.exe Parameter1 Parameter2... ParameterN riga di comando in un file batch, modificare il programma in modo che usi una riga di comando simile alla riga di comando seguente, dove ParameterFile è un file che contiene i parametri necessari (parametro1 parametro2... ParameterN):

    ExecutableFile.exe c:\temp\ParameterFile.txt
    
  • Modificare i programmi che usano variabili di ambiente di grandi dimensioni in modo che le variabili di ambiente contengano meno di 8191 caratteri.

    Ad esempio, se la variabile di ambiente PATH contiene più di 8191 caratteri, utilizzare uno o più dei metodi seguenti per ridurre il numero di caratteri:

    • Usare nomi più brevi per cartelle e file.
    • Ridurre la profondità degli alberi delle cartelle.
    • Archiviare i file in un minor numero di cartelle in modo che siano necessarie meno cartelle nella variabile di ambiente PATH.
    • Esaminare i possibili metodi che è possibile usare per ridurre la dipendenza di PATH per l'individuazione di file .dll.