Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается ограничение длины строк, используемых из командной строки в командной строке (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 файлов.