현재 디렉토리를 배치 파일 디렉토리로 변경


18

procdump 작업 bat을 실행 하는 파일이 Windows에 있습니다 . 배치 파일의 문제는 작업을 실행하기 전에 배치 파일 디렉토리로 먼저 CD를 넣어야합니다. 그렇지 않으면 스크립트가 작동하지 않습니다.

현재 배치 파일 디렉토리로 변경하는 방법은 무엇입니까?

내에서 다음 코드를 시도했습니다 procdump.bat.

cd "%~dp"
procdump -h devenv.exe mydump.txt

그러나 오류 메시지는 다음과 같습니다.

배치 매개 변수 대체에서 경로 연산자의 다음 사용법이 유효하지 않습니다. % ~ dp "

유효한 형식의 경우 CALL /? 또는 FOR /?

편집 : 제공된 답변 이 작동하지만 캐치가 하나뿐입니다. 현재 디렉토리가 배치 파일 디렉토리와 다른 경우 "시스템이 지정된 경로를 찾을 수 없습니다"가 표시됩니다. 누구든지 아이디어가 있습니까?


"% ~ dp"는 어디서 구할 수 있습니까?
fretje

답변:


24

좋아, 나는 당신이 의미하는 것을 여기 에서 찾았다 고 생각 %~dp합니다.

나는 당신이 정말로하고 싶은 것이 이것이라고 생각합니다.

cd /D "%~dp0"

(!) 그러나 현재 디렉토리가 다른 드라이브에있는 동안 cd활성 드라이브를 변경하지 않고 배치를 실행하려고 할 때 여전히 올바른 동작을 제공 하지는 않습니다.

편집 : 분명히 ( @Yoopergeek 덕분에 ) 명령에 /D매개 변수를 추가 cd하여 활성 드라이브를 변경할 수도 있습니다.


이러한 배치 매개 변수에 대한 자세한 내용 help callcmd프롬프트를 참조하십시오 .
추후 공지가있을 때까지 일시 중지되었습니다.

그건 그렇고, 당신은 이러한 매개 변수를 다음과 같이 결합 할 수 있습니다 :%~dp0
추가 통지까지 일시 중지되었습니다.

당신의 대답은 도움이됩니다. 그러나 현재 디렉토리가 배치 파일과 다른 디렉토리에 있으면 위의 명령이 실패합니다. 도 cd /D또는 cd "%~dp0" /D도움이되지 수 있습니다.
Graviton

@Ngu Soon Hui : 현재 디렉토리가 배치 파일과 다른 디렉토리에 있다는 것이 분명했습니다. 그러나 왜 그 명령이 실패했을까요? 여기에서 테스트했으며 작동합니다.
fretje

1
을 사용하여 해결책을 찾았습니다 cd /D "%~dp0". 감사.
Graviton

4

fretje의 답변에 의견을 남기고 싶지만 분명히 할 수 없습니까 ???


어쨌든, 메모와 관련하여 :
그러나 cd는 활성 드라이브를 변경하지 않기 때문에 현재 디렉토리가 다른 드라이브에있는 동안 배치를 실행하려고 할 때 여전히 올바른 동작을 제공하지는 않습니다.


/DCD 명령에서 스위치를 사용하면 CD가 활성 드라이브를 변경합니다.


...하지만 내 자신의 답변에 의견을 말할 수 있습니다. Man, ServerFault에 대한 담당자가 없어서 ... 여기에 SO 담당자가 '혼합'합니다.
Yoopergeek

1
@Yoopergeek : 계정을 연결할 수 있습니다. SO에 대한
응답
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.