배치 파일의 현재 디렉토리는 무엇입니까?


510

프로그램을 자동화하기 위해 배치 파일을 몇 개 만들고 싶습니다.

내 질문은 배치 파일을 만들 때 현재 디렉토리는 무엇입니까? 파일이있는 디렉토리입니까, 아니면 명령 프롬프트에 나타나는 것과 같은 디렉토리입니까?

답변:


1025

배치 파일 내에서 :

  • %cd%현재 작업 디렉토리를 참조합니다 (변수).
  • %~dp0 배치 파일 디렉토리의 전체 경로를 나타냅니다 (정적).
  • %~dpnx0그리고 %~f0모두 배치 디렉토리 및 파일 이름 (정적)에 대한 전체 경로를 참조하십시오.

참조 : % ~ DP0의 평균을 무엇을, 그리고 어떻게 작동합니까?


5
Јοеу @ - %0현재 서브 루틴의 이름을 줄 수 있지만 %~dp0합니다 항상 실행중인 배치 파일의 전체 경로를 제공합니다.
dbenham 2016 년

77
실제로 % ~ dp0은 실행중인 배치 파일이 있는 디렉토리 의 전체 경로를 제공하는 것처럼 보입니다 . % ~ dpnx0 (% ~ f0과 동일)은 배치 파일의 전체 경로를 제공합니다. 자세한 내용은 robvanderwoude.com/parameters.php 를 참조하십시오.
deadlydog

6
비슷한 질문에 대한 자세한 답변을 참조하십시오. Windows 배치 스크립트 (.bat)에서 전달 된 인수 목록
가져 오기

1
불행히도 .net에서 프로세스로 실행할 때 % ~ dp0은 배치 파일 디렉토리가 아닌 작업 디렉토리입니다.
trampster

3
보다 명확한 예로, .cmd파일을 마우스 오른쪽 단추로 클릭 하고 관리자로 실행하면 슬래시가있는 배치 파일 디렉토리를 %cd%제공 C:\WINDOWS\system32하고 %~dp0제공합니다.
icc97

25

그것은 일반적으로 배치 파일이 시작되는 디렉토리입니다,하지만 당신은 바로 가기에서 배치 파일을 시작하는 경우, 다른 시작 디렉토리를들 수있다. 또한 cmd에 있고 현재 디렉토리가 인 c:\dir3경우에도 배치 파일을 시작할 수 c:\dir1\dir2\batch.bat있습니다 c:\dir3. 이 경우 현재 디렉토리는입니다 .


11

배치 파일에서 % 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"

1
맨 위의 답변에서 언급했듯이 %cd%가변적이므로 관리자로 Windows 탐색기에서 배치 파일을 실행하면 원하는 파일 C:\WINDOWS\system32이 거의 아닙니다. %~dp0더 일관성이 있습니다.
icc97

6

현재 디렉토리에서 파일을 열고 있다고 가정하십시오. 명령은 다음과 같습니다.

 start %cd%\filename.filetype

나는 당신의 질문에 대답하기를 바랍니다.


5

배치 파일을 실행하기 위해 명령을 실행하는 디렉토리입니다.

위의 답변에서 언급했듯이 스크립트에 아래 명령을 추가하여 확인할 수 있습니다.

> set current_dir=%cd%
> echo %current_dir%  

4

배치 파일을 시작하는 디렉토리입니다. 예 일괄가있는 경우 c:\dir1\dir2와 당신이 cd c:\dir3다음 배치를 실행, 현재 디렉토리가 될 것입니다 c:\dir3.


0

그냥 내 2 센트. pendrive에 배치 파일 (Windows 7)에서 호출 된 경우 다음 명령이 실패합니다.

xcopy /s /e /i %cd%Ala C:\KS\Ala

그러나 이것은 일을합니다 :

xcopy /s /e /i %~dp0Ala C:\KS\Ala

이것은 그 배치 파일 이름없이 내 박쥐 파일의 상위 디렉토리 경로를 결정하기위한 내가 찾고 있던하는 스위치입니다 :%~dp0
아마르 모하마드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.