Limitação de cadeia de caracteres de linha de comando (Cmd. exe)
Este artigo discute a limitação para o comprimento das cadeias de caracteres que você usa do prompt de comando no Prompt de Comando (Cmd.exe). Ele também fornece métodos que você pode usar para contornar essa limitação.
Aplica-se a: Windows Server 2012 R2, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1
Número de KB original: 830473
Mais informações
O comprimento máximo da cadeia de caracteres que você pode usar no prompt de comando é de 8191 caracteres.
Essa limitação se aplica a:
- a linha de comando
- variáveis de ambiente individuais herdadas por outros processos, como a variável PATH
- todas as expansões de variáveis de ambiente
Se você usar o Prompt de Comando para executar arquivos em lote, essa limitação também se aplica ao processamento de arquivos em lote.
Exemplos
Os exemplos a seguir mostram como essa limitação se aplica aos comandos executados no Prompt de Comando e aos comandos que você usa em um arquivo em lote.
No Prompt de Comando, o comprimento total da linha de comando a seguir não pode conter mais de 8.191 caracteres:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
Em um arquivo em lote, o comprimento total da linha de comando a seguir não pode conter mais de 8.191 caracteres:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
Essa limitação se aplica às linhas de comando contidas em arquivos em lote quando você usa o Prompt de Comando para executar o arquivo em lote.
No Prompt de Comando, o tamanho total de
EnvironmentVariable1
após a expansãoEnvironmentVariable2
eEnvironmentVariable3
não pode conter mais de 8.191 caracteres:c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
Em um arquivo em lote, o comprimento total da seguinte linha de comando depois de expandir os parâmetros não pode conter mais de 8.191 caracteres:
ExecutableFile.exe parameter1 parameter2
Embora a limitação win32 para variáveis de ambiente seja de 32.767 caracteres, o Prompt de Comando ignora todas as variáveis de ambiente herdadas do processo pai e são mais longas do que suas próprias limitações de 8.191 caracteres (conforme apropriado para o sistema operacional). Para obter mais informações sobre a
SetEnvironmentVariable
função, consulte Função SetEnvironmentVariableA.
Como contornar a limitação
Para contornar a limitação, use um ou mais dos seguintes métodos, conforme apropriado para sua situação:
Modifique programas que exigem linhas de comando longas para que eles usem um arquivo que contém as informações do parâmetro e, em seguida, incluam o nome do arquivo na linha de comando.
Por exemplo, em vez de usar a
ExecutableFile.exe Parameter1 Parameter2... ParameterN
linha de comando em um arquivo em lote, modifique o programa para usar uma linha de comando semelhante à linha de comando a seguir, em que ParameterFile é um arquivo que contém os parâmetros necessários (parâmetro1 parâmetro2... ParameterN):ExecutableFile.exe c:\temp\ParameterFile.txt
Modifique programas que usam variáveis de ambiente grandes para que as variáveis de ambiente contenham menos de 8.191 caracteres.
Por exemplo, se a variável de ambiente PATH contiver mais de 8.191 caracteres, use um ou mais dos seguintes métodos para reduzir o número de caracteres:
- Use nomes mais curtos para pastas e arquivos.
- Reduza a profundidade das árvores de pastas.
- Armazene arquivos em menos pastas para que menos pastas sejam necessárias na variável de ambiente PATH.
- Investigue possíveis métodos que você pode usar para reduzir a dependência do PATH para localizar arquivos .dll.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de