배치 파일의 현재 위치를 알고 싶다면 (Windows가 매우 오래된 버전이 아닌 경우) for /?
'DOS 상자'창에 입력하십시오. 아래로 스크롤. 읽다.
이제 배치 파일 내 에서 다음 변수를 읽을 수 있음을 알 수 있습니다 .
%0 - as the name how this batchfile was called
%~d0 - as the drive letter where this batchfile is located ('\\' in case of share)
%~p0 - as path (without the drive letter) where this batchfile is located
%~n0 - as filename (without suffix) of this batchfile
%~x0 - as filename's suffix (without filename) of this batchfile
%~a0 - as this batchfile's file attributes
%~t0 - as this batchfile's date+time
%~z0 - as this batchfile's filesize
%~dpnx0 - as this batchfile's fully qualified path+filename
[... and then some more ...]
이것은 많은 경우에 효과적입니다. 배치 파일이이라고 가정하십시오 mytest.bat
. 다른 방법으로 호출 할 수 있습니다.
..\..\to\mytest.bat
............................... (상대 경로)
d:\path\to\mytest.bat
........................... (전체 경로)
\\fileserver\sharename\mytest.bat
... (원격 공유 경로)
... 그리고 당신은 항상 변수에서 올바른 가치를 얻습니다.
cd | sed "s/.*\\//"
(전혀 아무것도 \ 최종 전에 모든 것을 대체, 파이프 및 정규 표현식 검색에 CD (CWD)의 출력이 교체하는 것이)