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

Riepilogo

In questo articolo vengono illustrati la limitazione alla lunghezza delle stringhe in uso dal prompt dei comandi nel prompt dei comandi (Cmd.exe) e i metodi che è possibile utilizzare per aggirare questa limitazione.

Ulteriori informazioni

Sui computer che eseguono Microsoft Windows XP o versioni successive, la lunghezza massima della stringa che è possibile utilizzare il prompt dei comandi è 8191 caratteri. Nei computer che eseguono Microsoft Windows 2000 o Windows NT 4.0, la lunghezza massima della stringa che è possibile utilizzare il prompt dei comandi è 2047 caratteri.

Questa limitazione si applica alla riga di comando, singole variabili di ambiente (ad esempio la variabile PATH) che vengono ereditate da altri processi e tutte le espansioni di variabili di ambiente. Se si utilizza il prompt dei comandi per eseguire il file batch, questa limitazione si applica anche per l'elaborazione di file batch.

Esempi

Nell'elenco seguente fornisce alcuni esempi di come questa limitazione si applica ai comandi eseguiti nel prompt dei comandi e i comandi utilizzati in un file batch.
  • Nel prompt dei comandi, la lunghezza totale della seguente riga di comando che si utilizza il prompt dei comandi non può contenere più di 8191 o 2047 caratteri (a seconda del sistema operativo):
    cmd.exe /k ExecutableFile.exe parametro1, parametro2 ... parameterN
  • In un file batch, la lunghezza totale della seguente riga di comando che si utilizza il file batch non può contenere più di 8191 o 2047 caratteri (a seconda del sistema operativo):
    cmd.exe /k ExecutableFile.exe parametro1, parametro2 ... parameterN
    Questa limitazione si applica alle righe di comando che sono contenute nei file batch quando si utilizza il prompt dei comandi per eseguire il file batch.
  • Nel prompt dei comandi, la lunghezza totale del
    EnvironmentVariable1 dopo aver aperto
    EnvironmentVariable2 e
    EnvironmentVariable3 non può contenere più di 8191 o 2047 caratteri (a seconda del sistema operativo):
    c: > set EnvironmentVariable1=EnvironmentVariable2EnvironmentVariable3
  • In un file batch, la lunghezza totale della riga di comando seguente dopo espandere le variabili di ambiente nella riga di comando non può contenere più di 8191 o 2047 caratteri (a seconda del sistema operativo):
    ExecutableFile.exe parameter1parameter2
  • Anche se il limite di Win32 per le variabili di ambiente è 32.767 caratteri, il prompt dei comandi Ignora tutte le variabili di ambiente che vengono ereditate dal processo padre e superare le proprie limitazioni di 8191 o 2047 caratteri (a seconda del sistema operativo). Per ulteriori informazioni sulla funzione SetEnvironmentVariable , visitare il seguente sito Web Microsoft:

Come ovviare alla limitazione

Per risolvere il problema, utilizzare uno o più dei seguenti metodi (a seconda della situazione):
  • Modificare i programmi che richiedono lunghe righe di comando in modo che utilizzino un file che contiene le informazioni sui parametri e quindi includere il nome del file nella riga di comando.

    Ad esempio, anziché utilizzare parametro1 , parametro2 .exe ExecutableFile... ParameterN riga di comando in un file batch, la modifica del programma di utilizzare una riga di comando simile alla seguente riga di comando, dove
    ParameterFile è un file che contiene i parametri necessari (parametro1 parametro2
    ...ParameterN):
    ExecutableFile.exe c:\temp\ParameterFile.txt
  • Modificare i programmi che utilizzano le variabili di ambiente di grandi dimensioni in modo che le variabili di ambiente contengono meno di 8191 o 2047 caratteri (a seconda del sistema operativo).

    Ad esempio, se la variabile di ambiente PATH contiene più di 8191 o 2047 caratteri (a seconda del sistema operativo), utilizzare uno o più dei seguenti metodi per ridurre il numero di caratteri:
    • Utilizzare nomi più brevi per file e cartelle.
    • Ridurre la profondità delle strutture di cartelle.
    • Archiviare i file nelle cartelle di un numero inferiore in modo che sono necessarie meno cartelle nella variabile di ambiente PATH.
    • Provare a utilizzare metodi che è possibile utilizzare per ridurre la dipendenza del percorso per l'individuazione dei file DLL.
Proprietà

ID articolo: 830473 - Ultima revisione: 30 gen 2017 - Revisione: 1

Windows Server 2012 R2 Standard, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 Foundation, Windows Server 2012 Standard, Windows Server 2012 Standard, Windows Server 2012 Standard, Windows Server 2012 Standard, Windows Server 2012 Datacenter, Windows Server 2012 Datacenter, Windows Server 2012 Datacenter, Windows Server 2012 Datacenter, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows Server 2012 Foundation, Windows Server 2012 Foundation, Windows Server 2012 Foundation, Windows Server 2008 R2 Service Pack 1, Windows Server 2008 R2 Standard, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Foundation, Windows Server 2008 Service Pack 2, Windows Server 2008 Standard, Windows Server 2008 Datacenter, Windows Server 2008 Foundation, Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Web Edition, Windows 8.1 RTM, Windows 8.1 Pro, Windows 8.1 Enterprise, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Home Premium, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Server, Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows NT Workstation 4.0 Developer Edition

Feedback