배치가 실행된 디렉터리로 CMD CD 설정

배치가 실행된 디렉터리로 CMD CD 설정

저는 다른 환경에서 프로그램을 여는 배치 스크립트를 만들려고 합니다. 그래서 이식 가능한 버전을 만들 수 있습니다.

나는 이것을 set APPDATA=%CD%\data그렇게 하라고 말하기 위해 사용합니다. 내가 직면하고 있는 문제는 배치가 시작될 때 다음 오류가 발생한다는 것입니다.

CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.

cd대신 명령을 사용하여 배치 디렉터리로 변경하고 싶습니다 . 이 작업을 수행하는 쉬운 방법이 있나요?

답변1

네트워크 드라이브에 있는 경우 드라이브를 매핑하지 않으면 여전히 문제가 발생할 수 있습니다. 다음을 수행해 보세요.

APPDATA=%~dp0
cd /d %APPDATA%

cls를 수행하면 오류를 지울 수도 있지만 스크립트가 UNC 경로에서 실행되면 이 오류가 발생하므로 매핑하거나 오류를 CLS하면 됩니다.

답변2

이것을 배치에 넣어보세요:

pushd "%~p0" 2> nul
pushd "\\%~p0" 2> nul

UNC 폴더에서 시작한 경우 첫 번째 줄은 실패하지만 두 번째 줄은 작동합니다.

드라이브 매핑 폴더에서 시작한 경우 두 번째 줄은 실패하지만 첫 번째 줄은 작동합니다.

어느 쪽이든 현재 폴더는 배치 파일이 있는 위치가 되며 거기에서 폴더를 변경할 수 있습니다.

cd나중에 작업 중인 폴더를 표시하는 데 사용할 수 있습니다 .

관련 정보