Я создал инструмент, который добавляет некоторые вещи в контекстное меню при щелчке правой кнопкой мыши по каталогу, внутри «пустого пространства» каталога или диска. Я широко использовал это в Windows XP, Vista и 7, но теперь, когда я обновился до Windows 8, у меня возникла проблема с получением каталога, из которого была запущена команда.
Одна из вещей, которые я добавляю, это "Командная строка здесь", и я выполнил это с помощью следующего в INF-файле:
HKCR,Directory\Background\Shell\CommandPromptHere\command,,,"""%SystemRoot%\System32\cmd.exe"" /c cmd /s /k ""VER && PUSHD ""%1"""""
Это добавляет следующее в ключ REG_EXPAND_SZ:
"%SystemRoot%\System32\cmd.exe" /c cmd /s /k "VER && PUSHD "%1""
Так как это не сработало (не удалось найти cmd.exe), я попытался заменить его на:
cmd /c cmd /s /k "VER && PUSHD "%1"
В Windows 7, Vista и XP «% 1» раскрывается в каталог, в фоновом режиме которого щелкнули правой кнопкой мыши. Тем не менее, он не работает в Windows 8. Кажется, даже попытка вернуть его обратно в командную строку не работает.
Я могу получить «% cd%» для расширения, когда использую «ECHO% cd%», но я не могу использовать его для запуска командной строки («PUSHD% cd%» не работает).
Что-то изменилось с аргументами в Windows 8? Есть ли какая-то другая причина, по которой он не работает? Есть ли другой способ "Запустить командную строку в текущем каталоге" с помощью записи реестра? Я что-то пропустил?
Код здесь: https://github.com/Ehryk/ContextMenuTools для получения дополнительной информации или предложений.