윈도우 명령프롬프트와 배치파일 문법 정리
기본변수
%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 의 차이는 \의 유무 |