"CMD는 UNC 경로를 현재 디렉토리로 지원하지 않습니다"를 어떻게 처리합니까?


24

디렉토리를 다음과 같은 파일 서버로 변경하려고합니다.

cd \\someServer\\someStuff\

그러나 다음과 같은 오류가 발생합니다.

CMD는 UNC 경로를 현재 디렉토리로 지원하지 않습니다

해당 디렉토리로 이동하는 옵션은 무엇입니까?


답변:


34

스크립팅을 고려중인 경우 pushdpopd명령 에 대해 배우는 것이 항상 도움이됩니다 . 때로는 스크립트가 실행될 시스템에서 어떤 드라이브 문자가 이미 사용 중인지 확신 할 수 없으며 다음으로 사용 가능한 드라이브 문자를 가져와야합니다. 이후 net use드라이브를 지정할 필요합니다, 당신은 간단하게 사용할 수있는 pushd \\server\folder다음과 popd작업을 완료 할 때.


drive letter net 대신 '*'를 지정하면 ZA에서 사용 가능한 첫 번째 드라이브 검사를 사용합니다. 따라서 Z가없는 'net use * \\ server \ share': 드라이브를 매핑하면 \\ server \ share가 Z에 매핑됩니다.
Zypher

그러나 스크립트의 나머지 부분을 위해 어떤 드라이브 문자가 매핑되었는지 알 수 없습니다.
tomfanning

@tomfanning 명령 프롬프트에서이 명령 (wmic logicaldisk get caption, providername, drivetype, volumename)을 사용하여 드라이브 문자를 찾은 다음 \\ servername \ sharename을 찾는 출력을 구문 분석 할 수 있습니다. serverfault.com/questions/62578/…
Chris Magnuson

1
@pk. 스크립트가 실행되기 전에 충돌이 발생하면 어떻게 popd합니까?
Pacerier

15

또는 셸을 PowerShell로 전환 할 수 있습니다 . UNC 경로를 완벽하게 지원합니다.


explorer.exe가 삭제하려는 파일을 처리하는 경우를 제외하고. 탐색기 창을 닫아도 PS FileSystem 공급자 (제공자라고 가정)는 아마도 explorer.exe를 사용한다고 생각합니다. 또는 공급자없이 UNC를 사용할 수있는 방법이 있다고 말하고 있습니까?
JohnZaj

11

당신이 사용할 수있는 net useUNC 경로에 네트워크 드라이브를 매핑하고 매핑 된 드라이브를 검색 할 수 있습니다.


2
이 방법은 명령 줄에서 수행 할 수있는 유일한 방법이지만, 드라이브가 매핑되지 않았거나 매핑되었지만 연결되지 않은 여러 사용자 이름 :(
Mark Henderson

1
이 디렉토리로 변경할 수는 없지만 여전히 명령에서 사용할 수 있습니다 : dir \\ someserver \ stuff call \\ someserver \ stuff \ whatever.bat
Benoit

1
실제로 당신은 \\ someserver \ share를 사용할 수 있습니다. 당신은 그것을하기 위해 reg hack이 필요합니다 :-)
Bart Silverstrim

@BartSilverstrim, 어떻게?
Pacerier


1

cmd다른 유틸리티에서도 필요할 수 있는 드라이브를 명시 적으로 매핑 할 수있을뿐만 아니라 PowerShell과 같은 대체 명령 셸을 사용해 볼 수도 있습니다.


1

이것은 Win8x64에서 나를 위해 일했습니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

HKCU에서도이 작업을 수행 할 수 있어야합니다. 로그 오프했다가 다시 로그온하십시오.


1

@pk 사용 푸시 및 팝에 따라 여기에 예가 있습니다.

pushed를 사용하여 임시 가상 드라이브를 작성하고 완료 후 popd를 사용하여 임시 가상 드라이브를 삭제하십시오.

:selectFolder
REM Confirm which Folder structure
set /p location="Delete files for which QA environment: (P)retoria, (C)ape, (L)uanda or (Q)uit? (C/L/P/Q)"
REM  I option allows for upper and lower case
if /I "%location%"=="C" set folder="\\Tfwcqa\tfwcqa\EORDERS"
if /I "%location%"=="L" set folder="\\Tfluaqa\tfluaqa\EORDERS"
if /I "%location%"=="P" set folder="\\Tfptaqa\tfptaqa\EORDERS"
if /I "%location%"=="Q" goto endBatch

REM you can not cd to a network drive so we use pushd to create a temporary virtual drive
REM cd /d %folder%
pushd %folder%

DIR /S

REM popd deletes the temporary virtual drive
popd

0

정션 명령이 작동 하지 않습니까?


1
그렇게 생각하지 마십시오. junction은 로컬 디렉토리에서만 작동합니다.
Berzemus

작동합니까? 위키피디아 기사에서 : "접점은 로컬 볼륨의 디렉토리에만 링크 할 수 있으며 원격 공유에 대한 접합점은 지원되지 않습니다."
Peter Mortensen

@#%!# 네가 옳아. 나는 그것이 마운트 명령과 같다고 생각하고 있었는데, 2 년 전에 그것을 보았을 때이 문제가 있음을 잊었습니다. 한숨 미안 ...
Bart Silverstrim

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.