배치파일로 현재 위치를 알아보는 방법에 대해서 알아보겠습니다.
먼저 test.bat파일을 하나 만들어보았습니다.
echo %~d0
echo %~dp0
그리고 이렇게 이동하는 경우에 cd라는 명령어는 불가능하고 pushd를 통해서 이동하게 되는데요.
https://learn.microsoft.com/ko-kr/windows-server/administration/windows-commands/pushd
사용 하 여 현재 디렉터리에 저장는 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"
이렇게 사용해서 현재 위치를 읽어올 수 있습니다.
그럼 잘 사용하시길
'Programming' 카테고리의 다른 글
노션페이지 클라우드 플레어를 통해 개인 도메인 설정하기 (0) | 2023.04.19 |
---|---|
AWS Backup을 통해 EC2 백업하기 (0) | 2023.04.10 |
powershell로 입력받은 값 csv DB에서 찾기 (0) | 2023.03.19 |
mariadb 백업하기 (0) | 2023.03.15 |
Iexpress 활용해서 ps1 파일 exe 만들기 (0) | 2023.03.15 |