명령 프롬프트(Cmd. exe) 명령줄 문자열 제한
이 문서에서는 명령 프롬프트(Cmd.exe)의 명령 프롬프트에서 사용하는 문자열의 길이 제한에 대해 설명합니다. 또한 이 제한을 해결하는 데 사용할 수 있는 메서드도 제공합니다.
적용 대상: Windows Server 2012 R2, Windows Server 2008 R2 서비스 팩 1, Windows 7 서비스 팩 1
원본 KB 번호: 830473
추가 정보
명령 프롬프트에서 사용할 수 있는 문자열의 최대 길이는 8191자입니다.
이 제한 사항은 다음에 적용됩니다.
- 명령줄
- PATH 변수와 같은 다른 프로세스에서 상속되는 개별 환경 변수
- 모든 환경 변수 확장
명령 프롬프트를 사용하여 일괄 처리 파일을 실행하는 경우 이 제한 사항은 일괄 처리 파일 처리에도 적용됩니다.
예제
다음 예제에서는 명령 프롬프트에서 실행하는 명령과 일괄 처리 파일에서 사용하는 명령에 이 제한이 적용되는 방법을 보여 줍니다.
명령 프롬프트에서 다음 명령줄의 총 길이는 8191자를 초과할 수 없습니다.
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
일괄 처리 파일에서 다음 명령줄의 총 길이는 8191자를 초과할 수 없습니다.
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
이 제한은 명령 프롬프트를 사용하여 일괄 처리 파일을 실행할 때 일괄 처리 파일에 포함된 명령줄에 적용됩니다.
명령 프롬프트에서 확장
EnvironmentVariable2
한 후의EnvironmentVariable1
총 길이는EnvironmentVariable3
8191자를 초과할 수 없습니다.c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
일괄 처리 파일에서 매개 변수를 확장한 후 다음 명령줄의 총 길이는 8191자를 초과할 수 없습니다.
ExecutableFile.exe parameter1 parameter2
환경 변수에 대한 Win32 제한은 32,767자이지만 명령 프롬프트는 부모 프로세스에서 상속되고 자체 제한인 8191자보다 긴 환경 변수를 무시합니다(운영 체제에 적합). 함수에
SetEnvironmentVariable
대한 자세한 내용은 SetEnvironmentVariableA 함수를 참조하세요.
제한 사항을 해결하는 방법
제한 사항을 해결하려면 상황에 따라 다음 방법 중 하나 이상을 사용합니다.
매개 변수 정보가 포함된 파일을 사용하도록 긴 명령줄이 필요한 프로그램을 수정한 다음 명령줄에 파일 이름을 포함합니다.
예를 들어 일괄 처리 파일에서 명령줄을 사용하는
ExecutableFile.exe Parameter1 Parameter2... ParameterN
대신 다음 명령줄과 유사한 명령줄을 사용하도록 프로그램을 수정합니다. 여기서 ParameterFile 은 필수 매개 변수를 포함하는 파일입니다(parameter1 parameter2... ParameterN:ExecutableFile.exe c:\temp\ParameterFile.txt
환경 변수에 8191자 미만이 포함되도록 큰 환경 변수를 사용하는 프로그램을 수정합니다.
예를 들어 PATH 환경 변수에 8191자 이상이 포함된 경우 다음 메서드 중 하나 이상을 사용하여 문자 수를 줄입니다.
- 폴더 및 파일에 더 짧은 이름을 사용합니다.
- 폴더 트리의 깊이를 줄입니다.
- PATH 환경 변수에 필요한 폴더 수가 줄어들도록 더 적은 수의 폴더에 파일을 저장합니다.
- .dll 파일을 찾기 위한 PATH의 종속성을 줄이는 데 사용할 수 있는 가능한 방법을 조사합니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기