Bat 파일 현재위치 확인하는 방법

배치파일로 현재 위치를 알아보는 방법에 대해서 알아보겠습니다.

 

먼저 test.bat파일을 하나 만들어보았습니다.

 

 echo %~d0

echo %~dp0

그리고 이렇게 이동하는 경우에 cd라는 명령어는 불가능하고 pushd를 통해서 이동하게 되는데요.

https://learn.microsoft.com/ko-kr/windows-server/administration/windows-commands/pushd

 

pushd

popd 명령에서 사용할 현재 디렉터리를 저장한 다음 지정된 디렉터리로 변경하는 푸시된 명령에 대한 참조 문서입니다.

learn.microsoft.com

사용 하 여 현재 디렉터리에 저장는 popd 명령 및 지정된 된 디렉터리에 다음 변경 합니다.

푸시된 명령을 사용할 때마다 단일 디렉터리가 저장됩니다. 그러나 푸시된 명령을 여러 번 사용하여 여러 디렉터리를 저장할 수 있습니다. 디렉터리가 가상 스택에 순차적으로 저장되므로 푸시된 명령을 한 번 사용하는 경우 명령을 사용하는 디렉터리가 스택의 맨 아래에 배치됩니다. 명령을 다시 사용하면 두 번째 디렉터리가 첫 번째 디렉터리 위에 배치됩니다. 푸시된 명령을 사용할 때마다 프로세스가 반복 됩니다 .

popd 명령을 사용하는 경우 스택 맨 위에 있는 디렉터리가 제거되고 현재 디렉터리가 해당 디렉터리로 변경됩니다. 사용 하는 경우는 popd 명령을 다시, 스택에서 다음 디렉터리에서 제거 됩니다. 명령 확장을 사용하도록 설정하면 popd 명령은 푸시 된 명령에서 만든 드라이브 문자 할당을 제거합니다.

예제에 나온 것처럼 REM은 배치파일에서 주석을 나타냅니다.

파일 경로

 %0  파일 전체 경로  C:\python\code\test.bat 
 %~d0  드라이브 명  C:
 %~p0  경로   \python\code\
 %~n0  파일 명   test
 %~x0  확장자 명  .bat 
 %~dp0  드라이브와 경로  C:\python\code\

그래서 현재 폴더로 이동하려면  아래처럼 pushd "%~dp0"를 입력하면 됩니다.

 

@ECHO OFF
pushd "%~dp0"

이렇게 사용해서 현재 위치를 읽어올 수 있습니다.

 

그럼 잘 사용하시길