Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается ограничение длины строк, используемых из командной строки в командной строке (Cmd.exe). Он также предоставляет методы, которые можно использовать для обхода этого ограничения.
Область применения: Windows Server 2012 R2, Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows 7 с пакетом обновления 1 (SP1)
Исходный номер базы знаний: 830473
Дополнительная информация
Максимальная длина строки, которую можно использовать в командной строке, составляет 8191 символов.
Это ограничение применяется к следующему:
- командная строка
- отдельные переменные среды, унаследованные другими процессами, например переменная PATH
- все расширения переменных среды
При использовании командной строки для выполнения пакетных файлов это ограничение также применяется к обработке пакетного файла.
Примеры
В следующих примерах показано, как это ограничение применяется к командам, выполняемым в командной строке, и командам, которые используются в пакетном файле.
В командной строке общая длина следующей командной строки не может содержать более 8191 символов:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterNВ пакетном файле общая длина следующей командной строки не может содержать более 8191 символов:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterNЭто ограничение применяется к строкам команд, содержащихся в пакетных файлах при использовании командной строки для запуска пакетного файла.
В командной строке общая длина
EnvironmentVariable1после развертыванияEnvironmentVariable2иEnvironmentVariable3не может содержать более 8191 символов:c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3В пакетном файле общая длина следующей командной строки после развертывания параметров не может содержать более 8191 символов:
ExecutableFile.exe parameter1 parameter2Несмотря на то, что ограничение Win32 для переменных среды составляет 32 767 символов, командная строка игнорирует любые переменные среды, унаследованные от родительского процесса, и больше, чем собственные ограничения 8191 символов (в соответствии с операционной системой). Дополнительные сведения о функции см. в
SetEnvironmentVariableразделе SetEnvironmentVariableA.
Как обойти ограничение
Чтобы обойти ограничение, используйте один или несколько следующих методов в соответствии с вашей ситуацией:
Измените программы, требующие длинных команд, чтобы они использовали файл, содержащий сведения о параметрах, а затем включите имя файла в командной строке.
Например, вместо использования
ExecutableFile.exe Parameter1 Parameter2... ParameterNкомандной строки в пакетном файле измените программу на использование командной строки, аналогичной следующей командной строке, где ParameterFile — это файл, содержащий необходимые параметры (параметр1 параметр2... ParameterN):ExecutableFile.exe c:\temp\ParameterFile.txtИзмените программы, использующие большие переменные среды, чтобы переменные среды содержали менее 8191 символов.
Например, если переменная среды PATH содержит более 8191 символов, используйте один или несколько следующих методов, чтобы уменьшить количество символов:
- Используйте более короткие имена для папок и файлов.
- Уменьшите глубину деревьев папок.
- Сохраните файлы в меньшем количестве папок, чтобы в переменной среды PATH было необходимо меньше папок.
- Изучите возможные методы, которые можно использовать для уменьшения зависимости PATH для поиска .dll файлов.