[batch-file] 배치 파일의 현재 디렉토리는 무엇입니까?

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

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



답변

배치 파일 내에서 :

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

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


답변

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


답변

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


답변

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

 start %cd%\filename.filetype

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


답변

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

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

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


답변

배치 파일을 시작하는 디렉토리입니다. 예 일괄가있는 경우 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