답변:
배치 파일 내에서 :
%cd%
현재 작업 디렉토리를 참조합니다 (변수).%~dp0
배치 파일 디렉토리의 전체 경로를 나타냅니다 (정적).%~dpnx0
그리고 %~f0
모두 배치 디렉토리 및 파일 이름 (정적)에 대한 전체 경로를 참조하십시오..cmd
파일을 마우스 오른쪽 단추로 클릭 하고 관리자로 실행하면 슬래시가있는 배치 파일 디렉토리를 %cd%
제공 C:\WINDOWS\system32
하고 %~dp0
제공합니다.
배치 파일에서 % cd %는 현재 디렉토리에 가장 일반적으로 사용되는 명령이지만 고유 한 변수를 설정할 수 있습니다.
set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)
Myprog.exe를 열려고한다고 가정하십시오. 동일한 폴더에 있으면 다음 명령을 사용하십시오.
start %mypath%\Myprog.exe
현재 폴더에서 Myprog가 열립니다.
다른 옵션은 C :에 AutomatePrograms 디렉토리를 만드는 것입니다. 그런 다음 파일을 해당 폴더로 전송 한 후 다음 명령을 사용하여 파일을 열 수 있습니다.
start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"
%cd%
가변적이므로 관리자로 Windows 탐색기에서 배치 파일을 실행하면 원하는 파일 C:\WINDOWS\system32
이 거의 아닙니다. %~dp0
더 일관성이 있습니다.
배치 파일을 시작하는 디렉토리입니다. 예 일괄가있는 경우 c:\dir1\dir2
와 당신이 cd c:\dir3
다음 배치를 실행, 현재 디렉토리가 될 것입니다 c:\dir3
.
그냥 내 2 센트. pendrive에 배치 파일 (Windows 7)에서 호출 된 경우 다음 명령이 실패합니다.
xcopy /s /e /i %cd%Ala C:\KS\Ala
그러나 이것은 일을합니다 :
xcopy /s /e /i %~dp0Ala C:\KS\Ala
%~dp0
%0
현재 서브 루틴의 이름을 줄 수 있지만%~dp0
합니다 항상 실행중인 배치 파일의 전체 경로를 제공합니다.