6

Когда я [ Shift + щелчок правой кнопкой мыши] папка, которая не находится на моем диске C и выбираю "Открыть консоль здесь", я получаю окно cmd , которое не открывается в правильном месте, а вместо этого указывает на C:\Windows\system32 . Я должен вручную переключиться на правильный диск, но когда я это сделаю, то в нужной папке. Это едва ли конец света, но это небольшое раздражение, которое действительно начинает действовать мне на нервы ...

Примечание: это работает правильно для местоположений на диске C

Это ожидаемое поведение при использовании за пределами C?

Если нет, то как мне это исправить?
Если это так, как я могу изменить его, чтобы загружать папки других дисков напрямую?


Например, если я попытаюсь открыть окно консоли, указывающее на папку на моем рабочем столе, примерно так:

Выбор «Открыть консоль здесь» из меню Shift + правый клик для папки на рабочем столе

Я получаю окно cmd указывающее на C:\Windows\system32 которое мне нужно вручную переключить на D: но после этого вы можете видеть, что папка в D: была выбрана успешно:

Окно CMD, которое первоначально показывает папку C:\win\sys32, но одна команда «D:» изменяется на правильное местоположение.


Обновить

Кажется, "Открыть консоль здесь" может быть нестандартным (см. Комментарии).

Для полноты, оказывается, что я вижу, вероятно, стандартное "Открыть окно командной строки" внизу списка при щелчке внутри папки (это "файловое пространство", а не на самом значке папки), как показано на рисунке ниже, так что есть некоторая разница между двумя, которые возникли:

Shift +RMB меню при открытии прямо с рабочего стола (ничего не выделено)

3 ответа3

5

Изучив реестр и спросив людей в чате, я определил, что параметры, передаваемые экземпляру cmd который здесь вызывался, были неверными.

Команду можно найти в [HKEY_CLASSES_ROOT\Directory\shell\cmd\command] и у меня было (Default) значение:

cmd.exe /k cd \"%L\"

Изменение этого значения на следующее (полученное в этом кратком сеансе чата) решило проблему:

cmd.exe /s /k pushd \"%V\"

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

3

Самостоятельный ответ DMA57361 явно решил исходную проблему. Я думал, что добавлю некоторую информацию, которую я обнаружил ....

Сначала я заметил подозрительное значение в ключе HKEY_CLASSES_ROOT\Directory\shell\cmd именем Extended . По догадке я переименовал это значение в xxx-Extended и теперь пункт меню "Открыть командное окно здесь" часто появляется без клавиши Shift. Поскольку старое решение для настройки интерфейса не требовало клавиши Shift, это открытие делает меня счастливым!

Во-вторых, моя относительно немодифицированная 64-битная установка Windows 7 Pro имеет раздел реестра HKEY_CLASSES_ROOT\Directory\shell\cmd\command только значение по умолчанию cmd.exe /s /k pushd "%V" (обратите внимание, что тип REG_SZ, а не REG_EXPAND_SZ. Значение %V (и сообщаемое использование %L) не являются результатом подстановки переменных среды, и расширение должно выполняться самим проводником.)

Доступные подключаемые модули контекстного меню перечислены в качестве подразделов раздела реестра HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers . (Другие ключи в ....\shellex являются обработчиками для других видов расширений оболочки.) Один из этих обработчиков или, возможно, одно из других расширений, вероятно, является источником странного значения по умолчанию клавиши ....\command .

Изменить соседний ключ, HKEY_CLASSES_ROOT\Directory\Background\shell\cmd , также имеет значение с именем Extended . Оказывается, что это управляет контекстным меню в представлении содержимого папки (правая панель и сам рабочий стол), в то время как названное выше управляет контекстным меню самих объектов папки (их значки справа или на рабочем столе, или где угодно). в дереве папок слева).

1

pushd требуется, если вы хотите, чтобы Windows 7 переключала буквы дисков в каталог, т.е. также переключала диск.

Необходимый раздел реестра выглядит следующим образом (я называю его DOS) - поместите его в файл .reg и выполните:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\DOS]

[HKEY_CLASSES_ROOT\Folder\shell\DOS\command]
@="\"C:\\WINDOWS\\SYSTEM32\\CMD.EXE\" /s /K  pushd \"%v\""

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