Limitação da cadeia de caracteres de linha de comando do prompt de comando (Cmd. exe)

O suporte para o Windows XP terminou

A Microsoft terminou o suporte para o Windows XP em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

O suporte para o Windows Server 2003 termina em 14 de julho de 2015.

A Microsoft terminou o suporte para o Windows Server 2003 em 14 de julho de 2015. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

Sumário
Este artigo descreve a limitação do comprimento das cadeias de caracteres usadas do prompt de comando no Prompt de Comando (Cmd.exe) e os métodos que podem ser usados como solução alternativa dessa limitação.
Mais Informações
Nos computadores executando o Microsoft XP ou posterior, o comprimento máximo da cadeia de caracteres que é possível usar no prompt de comando é de 8191 caracteres. Nos computadores executando o Microsoft Windows 2000 ou o Windows NT 4.0, o comprimento máximo da cadeia de caracteres que é possível usar no prompt de comando é de 2047 caracteres.

Essa limitação aplica-se à linha de comando, às variáveis de ambiente individual (como a variável PATH), que são herdadas por outros processos, e a todas as expansões de variável de ambiente. Se você usar o Prompt de Comando para executar arquivos em lotes, a limitação também se aplicará ao processamento do arquivo em lotes.

Exemplos

A lista a seguir mostra alguns exemplos de como essa limitação se aplica aos comandos executados no Prompt de Comando e usados em um arquivo em lotes.
  • No Prompt de Comando, o comprimento total da seguinte linha de comando usada no prompt de comando não pode ter mais que 2047 ou 8191 caracteres (conforme apropriado ao sistema operacional):
    cmd.exe /k ArquivoExecutável.exe parâmetro1, parâmetro2 ... parâmetroX
  • Em um arquivo em lotes, o comprimento total da seguinte linha de comando usada no arquivo em lotes não pode ter mais do que 2047 ou 8191 caracteres (conforme apropriado ao sistema operacional):
    cmd.exe /k ArquivoExecutável.exe parâmetro1, parâmetro2 ... parâmetroX
    Essa limitação se aplica às linhas de comando contidas nos arquivos em lotes ao usar o Prompt de Comando para executar um arquivo em lotes.
  • No Prompt de Comando, o comprimento total da EnvironmentVariable1 após expandir a EnvironmentVariable2 e a EnvironmentVariable3 não pode conter mais do que 2047 ou 8191 caracteres (conforme apropriado a cada sistema operacional):
    c:> set VariávelDeAmbiente1=VariávelDeAmbiente2VariávelDeAmbiente3
  • Em um arquivo em lotes, o comprimento total da seguinte linha de comando, após a expansão das variáveis de ambiente na linha de comando, não pode conter mais do que 2047 ou 8191 caracteres (conforme apropriado ao sistema operacional):
    ArquivoExecutável.exeparâmetro1parâmetro2
  • Apesar do limite Win32 para as variáveis de ambiente ser de 32.767 caracteres, o Prompt de Comando ignora as variáveis de ambiente herdadas do processo pai e são mais compridas do que seus próprios limites, tanto de 2047 caracteres quanto de 8191 (conforme apropriado ao sistema operacional). Para obter mais informações sobre a função DefinirVariávelDeAmbiente, visite o seguinte site da Microsoft (em inglês):

Como usar a solução alternativa para o limite

Para usar a solução alternativa para o limite, use um ou mais dos seguintes métodos (conforme apropriado à situação):
  • Modifique os programas que exigem linhas de comando compridas, assim, eles usarão um arquivo que tenha a informação de parâmetro, e inclua o nome do arquivo na linha de comando.

    Por exemplo, em vez de usar a linha de comando no arquivo em lote ArquivoExecutável.exeParâmetro1 Parâmetro2 ...ParâmetroX, modifique o programa para usar a linha de comando semelhante à seguinte linha de comando, em que ArquivoDeParâmetro é um arquivo que contém os parâmetros solicitados (parâmetro1parâmetro2 ...ParâmetroX):
    ArquivoExecutável.exe c:\temp\ArquivoDeParâmetro.txt
  • Modifique os programas que usam variáveis de ambiente compridas, assim, as variáveis de ambiente terão menos de 2047 ou 8191 caracteres (conforme apropriado ao sistema operacional).

    Por exemplo, se a variável de ambiente PATH tiver mais do que 2047 ou 8191 caracteres (conforme apropriado ao sistema operacional), use um ou mais dos seguintes métodos para reduzir o número de caracteres:
    • Use nomes menores para pastas e arquivos.
    • Reduza a profundidade das árvores de pastas.
    • Armazene os arquivos em menos pastas para que menos pastas sejam requisitadas na variável de ambiente PATH.
    • Investigue possíveis métodos que podem ser usados para reduzir a dependência do PATH para localizar os arquivos .dll.
cmd cmd.exe "command prompt" 2048 2047 2046 8192 8191 environment variable PATH command line
Propriedades

ID do Artigo: 830473 - Última Revisão: 05/04/2007 20:53:29 - Revisão: 1.5

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, 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

  • kbinfo KB830473
Comentários