Я создал инструмент, который добавляет некоторые вещи в контекстное меню при щелчке правой кнопкой мыши по каталогу, внутри «пустого пространства» каталога или диска. Я широко использовал это в 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 для получения дополнительной информации или предложений.

1 ответ1

0

Очевидно, по какой-то причине% 1 не заполняется при использовании команд /Background / в Windows 8, как в Windows 7.

Я обошел это с помощью:

cmd /c cmd /s /k "VER && @cd "%%%CD%%%"

Любое понимание того, почему это изменилось, очень приветствуется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .