네트워크 드라이브를 매핑하기 위해 UNC 경로에서 cmd.exe를 어떻게 시작합니까?

네트워크 드라이브를 매핑하기 위해 UNC 경로에서 cmd.exe를 어떻게 시작합니까?

cmd.exe는 를 사용하여 UNC 경로로 작업할 수 있지만 PUSHD \\UNC\PathUNC 경로에서 cmd 또는 유사한 명령을 시작하려고 합니다. 이유는 다음과 같습니다.

"여기에서 Powershell 시작" 및 "여기에서 명령 프롬프트 열기"와 같은 상황에 맞는 메뉴 도구 제품군에 "여기에 네트워크 드라이브 매핑"을 추가합니다. 그들은 Windows 레지스트리에 레지스트리 키를 추가하는데 이것은 훌륭하게 작동합니다.

예를 들어 다음은 여기에서 명령 프롬프트를 엽니다.

"cmd /s /k ""VER && TITLE Command Prompt: %1 && PUSHD ""%1"" "" "(폴더를 마우스 오른쪽 버튼으로 클릭하는 경우 UNC 경로에서 작동)

"cmd /s /k ""VER && TITLE Command Prompt: %%%CD%%%"" "(디렉터리 배경을 마우스 오른쪽 버튼으로 클릭하는 경우 UNC 경로에서는 작동하지 않습니다.)

명령은 레지스트리 키 DWORD로 입력되며 폴더를 마우스 오른쪽 버튼으로 클릭하면 작동합니다.

"net use * ""%1"" "(폴더를 마우스 오른쪽 버튼으로 클릭하는 경우 UNC 경로에서 작동)

"net use * ""%%%CD%%%"" "(디렉터리 배경을 마우스 오른쪽 버튼으로 클릭하는 경우 UNC 경로에서는 작동하지 않습니다.)

%%%CD%%%UNC 경로에서 시작되지 않는 cmd.exe에 의해 확장되고 있는 것 같습니다 .

내 질문은 다음과 같습니다. 명령에 전달하기 위해 레지스트리 키에서 확장된 UNC 및 Windows 경로 모두에 대해 마우스 오른쪽 버튼을 클릭한 '드라이브 또는 디렉터리의 배경' 경로를 어떻게 얻습니까?

HKCR,Directory\Shell\xxx\command이것들은 각각 및 에 들어갈 것입니다 HKCR,Directory\Background\Shell\xxx\command.

이는 GitHub에서 사용할 수 있는 오픈 소스 프로젝트입니다.https://github.com/Ehryk/ContextMenuTools

답변1

잘 모르겠지만... 그런데 이런 뜻이었나요?(%1 대신 %V를 사용해야 합니다)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd]
@="Open cmd here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd\command]
@="cmd /s /k \"VER && TITLE Command Prompt: \"%V\"  && PUSHD \"%V\" \""

(NoWorkingDirectory는 UNC를 작업 디렉터리로 사용하여 cmd를 열 때 초기 오류 메시지가 표시되지 않도록 하기 위한 것입니다. 이렇게 하면 현재 디렉터리 없이 cmd를 시작한 후 pushd를 수행하여 임시 드라이브 문자를 얻습니다.)

편집: 디렉토리의 빈 공간을 클릭하기 때문에 %1 매개변수가 채워지지 않습니다(디렉토리 자체를 클릭하는 경우와 같습니다). 따라서 %V 또는 %W를 사용해야 합니다. 이는 네트워크 디렉터리의 빈 공간을 마우스 오른쪽 버튼으로 클릭할 때 UNC 경로인 작업 디렉터리를 나타냅니다.

보다여기이러한 변수의 전체 목록을 보려면

관련 정보