
저는 다른 환경에서 프로그램을 여는 배치 스크립트를 만들려고 합니다. 그래서 이식 가능한 버전을 만들 수 있습니다.
나는 이것을 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
나중에 작업 중인 폴더를 표시하는 데 사용할 수 있습니다 .