윈도우 배치 파일에 나오는 %~dp0의 의미
Windows에서 ".bat"과 같은 배치 파일을 작성하려고 생각한 초보자 분이 다른 사용자가 작성한 배치 파일을 참고하려고 살펴보니 아래와 같은 구문이 붙어 있어 의문이 들 때가 있습니다.
@echo OFF
cd /d %~dp0
cd는 디렉토리의 변경이고, 「/d」는 D드라이브로의 변경을 실시하고 있습니다.다음 %~dp0이 도대체 무엇인지 모르겠다는 사용자도 계실 것 같습니다.
Windows의 배치로 「%0」 「%1」 「%2」라고 하는 %숫자는 인수를 나타내고 있어 0은 실행하고 있는 배치 파일 자체를 나타내고 있습니다.「%1」 「%2」는 배치의 제1 인수·제2 인수입니다.
그럼 %와 0으로 둘러싸여 있는 dp 부분은 무슨 뜻이냐면요, ~는 드라이브나 파일 경로에서 ""를 제거합니다.인수에서 "를 제거하여 순수한 경로 문자열로 만들 수 있습니다.dp 부분은 문자열에서 무엇을 어떻게 얻을 것인가에 대한 옵션입니다.
「d」는 드라이브 문자에만 전개한다·「p」는 파일명을 제외한 패스의 부분에 전개한다고 하는 조작이므로, 「%~dp0」이란 「실행되고 있는 파일이 놓인 디렉토리」를 가리키고 있습니다.덧붙여서, 실행 파일의 디렉토리에 대한 개념으로서 「커런트」디렉토리라고 하는 것이 존재하고 있습니다.
옵션 구문 목록
%~d0: %0을 드라이브 문자로만 전개하다
%~f0: %0을 완전 수식 경로명으로 전개하다
%~n0:%0을 파일명으로만 전개한다
%~p0: %0을 패스 이름으로만 전개하다
%~x0: %0을 파일 확장자에만 전개한다
%~a0:%0을 파일 속성으로 전개하다
%~t0:%0을 파일 날짜/시각에 전개한다
%~z0:%0을 파일 크기로 전개하다
%~$PATH:0:PATH 환경 변수로 지정된 디렉토리를 검색하여 처음 발견된 완전 수식명에 %0을 전개한다.
%~s0 : 전개된 경로는 짧은 이름만 포함
%~dp0: %0을 드라이브 문자와 경로로만 전개한다
%~nx0:%0을 파일명과 확장자로만 전개한다