윈도우 명령프롬프트와 배치파일 문법 정리
기본변수
| %allusersprofile% | C:\ProgramData | |
| %ALLUSERSPROFILE% | C:\ProgramData | |
| %APPDATA% | C:\Users\(사용자명)\AppData\Roaming | |
| %CD% | 현재 경로(path) | |
| %CMDCMDLINE% | cmd의 실행경로 | |
| %CommonProgramFiles% | C:\Program Files\Common Files | |
| %commonprogramfiles% | C:\Program Files\Common Files | |
| %CommonProgramFiles(x86)% | C:\Program Files (x86)\Common Files | |
| %CommonProgramW6432% | C:\Program Files\Common Files | |
| %COMPUTERNAME% | 컴퓨터이름 표시 | |
| %ComSpec% | cmd의 실행파일의 위치 | |
| %ERRORLEVEL% | 에러 레벨을 표시 | |
| %HOMEDRIVE% | 사용자 홈 디렉토리에 연결된 홈 드라이브의 문자 | |
| %HOMEPATH% | 사용자 홈 디렉토리의 경로 | |
| %HTTP_PROXY% | http 프록시 서버 주소 | |
| %LOGONSERVER% | 사용자 인증을 담당하는 컴퓨터의 이름 | |
| %OS% | 운영체제의 종류 | |
| %Path% | 설정된 경로, 설정된 경로에 있는 파일은 어느 위치에서나 실행가능 | |
| %PATHEXT% | %Path% 에서 실행할 수 있는 확장자의 종류 | |
| %PROCESSOR_ARCHITECTURE% | AMD64 로 나온, 프로세서의 종류, intel CPU도 64비트는 AMD64로 나옴 | |
| %PROCESSOR_IDENTIFIER% | 프로세서의 자세한 정보 | |
| %PROCESSOR_LEVEL% | 프로세서 수준, ex. 6 | |
| %PROCESSOR_REVISION% | 프로세서 리비전 수준 | |
| %programdata% | C:\ProgramData | |
| %programfiles% | C:\Program Files | |
| %programfiles(x86)% | C:\Program Files (x86) | |
| %PROMPT% | $P$G 프롬프트 모양 | |
| %public% | C:\Users\Public | |
| %systemdrive% | C: 운영체제가 설치된 드라이브 | |
| %systemroot% | C:\Windows | |
| %TEMP% | 임시 작업 폴터 경로 | |
| %TMP% | 임시 작업 폴터 경로 | |
| %USERDOMAIN% | 컴퓨터이름, 사용자의 계정이 속한 도메인 | |
| %username% | 로그온한 사용자의 이름, 계정이름 | |
| %userprofile% | C:\Users\사용자 계정 | |
| %WINDIR% | C:\Windows | |
| %DATE% | 오늘 날짜를 출력 | |
| %TIME% | 지금 시각을 출력 | |
| %RANDOM% | 0 ~ 32767 사이의 아무 숫자를 출력 | |
매개변수
| 배치파일 실행시 인수를 전달하는 변수 | 예시) 배치파일명.bat test 35 70 | |
| %0 | 배치파일명.bat | 파일명을 전달 |
| %1 | test | 첫번째 인수 |
| %2 | 35 | 두번째 인수 |
| %1 %2 | test 35 | |
| %*| | test 35 70 | 모두 전달 |
환경변수
| Set 명령어로 선언하여 사용 | ||
| CMD 에서 set 으로 모든 선언된 환경변수를 확인할 수 있음. | ||
| CMD 에서 %환경변수% 로 내용을 확인할 수 있음. | > echo %COMPUTERNAME% | |
| set any1=값 | set any1=12345678 | |
| set /a any1 = 수식 | 수식의 결과를 any1 에 보관 | |
| set /p any2 | ||
| %any1% | 12345678 | 저장된 값이 나타남 |
| %any1:대응값% | 저장된 값을 대응값으로 치환 | |
| %any1:123=뭐냐% | 뭐냐45678 | 123을 뭐냐 로 치환 |
| %any1:1234=% | 5678 | 1234를 없음으로 치환 |
| %any1:~1% | 2345678 | 0부터 카운트해서 1번째 문자부터 나타냄 |
| %any1:~3% | 45678 | 0부터 카운트해서 4번재 문자부터 나타냄 |
| 실제값 1, 2, 3, 4, 5, 6, 7, 8 | ||
| 카운트 0, 1, 2, 3, 4, 5, 6, 7 | 카운트는 0부터 시작함 | |
| %any1:~3,2% | 45 | 4번째 글자부터 2개 출력 |
| %any1:~3,-2% | 45678 | 4번째 글자부터 맨 뒤 2개 빼고 출력 |
| %any1:~-3,2% | 67 | 뒤(-)에서 3번째 글자부터, 2개 출력 |
| 실제값 1, 2, 3, 4, 5, 6, 7, 8 | ||
| 카운트 8, 7, 6, 5, 4, 3, 2, 1 | 뒤(-)는 카운트가 1부터 시작함 | |
| %any1:~-7,4% | 2345 | |
| %any1:~-4,-1% | 567 | 뒤에서 4번째 부터 맨 뒤 1글자 빼고 출력 |
명령어, 배치파일 명령
| pushd | 현재 경로를 POPD 에 저장 후 지정된 경로로 이동 | |
| popd | PUSHD 에 의하여 기억된 경로로 다시 이동 | |
| %0 | "c:\temp\test.bat" | ""를 포함한 "배치명령에 의한 어떤값" |
| %~0 | c:\temp\test.bat | ""를 제외한 배치명령에 의한 어떤값 |
| %~d0 | c:\temp\test.bat | 드라이브 문자 |
| %~p0 | c:\temp\test.bat | 경로명, 드라이브명 제외 |
| %~n0 | c:\temp\test.bat | 파일명, 경로·확장자 제외 |
| %~x0 | c:\temp\test.bat | 확장자명 |
| %~dp0 | c:\temp\test.bat | 완전한 경로명 |
| %~dpnx0 | c:\temp\test.bat | 완전한 경로명과 파일명까지 |
| %cd% | c:\temp | |
| %~dp0 | c:\temp\ | %cd% 와 %~dp0 의 차이는 \의 유무 |