Хотя cmd.exe может работать с UNC-путями с помощью PUSHD \\UNC\Path
, я пытаюсь запустить cmd или аналогичную команду ОТ UNC-пути. Вот почему:
Я добавляю "Подключить сетевой диск здесь" к своему набору инструментов контекстного меню, таких как "Запустить Powershell Here" и "Открыть командную строку здесь". Они добавляют ключи реестра в реестр 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%%%
расширяется с помощью cmd.exe, который не запускается по пути UNC.
Мой вопрос Как получить путь к «фону диска или каталога», который щелкнул правой кнопкой мыши для путей UNC и Windows, раскрытых в разделе реестра, с целью передачи его команде?
Они будут идти в HKCR,Directory\Shell\xxx\command
и HKCR,Directory\Background\Shell\xxx\command
, соответственно.
Это проект с открытым исходным кодом, доступный на GitHub: https://github.com/Ehryk/ContextMenuTools