Por que o "Abrir o console aqui" não abre o cmd na unidade correta se não for usado no C-Drive?

6

Quando eu [ Mudança + Clique com o botão direito] uma pasta que não é no meu C dirigir e selecione "Abrir console aqui" eu recebo um cmd janela para cima que não é abriu no local correto, mas está apontando para C:\Windows\system32. Eu tenho que mudar manualmente para a unidade correta, mas quando eu faço isso é, então, na pasta correta. Isso dificilmente é o fim do mundo, mas é um pequeno aborrecimento que está realmente começando a me dar nos nervos ...

Nota: Funciona corretamente para locais no C dirigir.

É este o comportamento esperado quando usado fora de C?

Se não, como faço para corrigir isso?
Se for, como posso alterá-lo para carregar pastas de outras unidades diretamente?


Por exemplo, se eu tentar abrir uma janela de console apontando para uma pasta na minha área de trabalho, assim:

Selecting "Open console here" from shift+right click menu for folder on desktop

Eu recebo um cmd janela apontando para C:\Windows\system32 que eu tenho que mudar manualmente para o D:, mas ao fazer isso, você pode ver que a pasta dentro D: foi selecionado com sucesso:

CMD window that initially shows C:\win\sys32 folder, but a single "D:" command changes to correct location.


Atualizar

Parece que "Abrir console aqui" pode não ser padrão (veja os comentários).

Para completar, vejo que eu provavelmente vejo a janela de comando "Open open here" abaixo na lista ao clicar dentro de uma pasta (é "espaço no arquivo", não no próprio ícone da pasta), de acordo com a imagem abaixo. alguma diferença entre os dois que é cortada:

shift+RMB menu when opened directly from desktop (with nothing highlighted)

DMA57361
fonte
Não consigo reproduzir isso no Win 7 Pro de 64 bits. O menu lê "Abrir janela de comando aqui" e isso acontece. Eu tentei uma unidade de rede mapeada e uma unidade física real.
RBerteig
Eu também não posso replicar isso no Win 7 Ultimate 64-bit SP1. Como o @Rberteig, funciona bem para mim. Eu quase me pergunto se você tem uma extensão de shell ou algo que está em conflito?
Shinrai
Hmmm, estou no trabalho agora, mas se eu shift-rmb dentro de uma pasta (ou seja, não em um ícone de pasta em si, mas dentro de seu "espaço no arquivo") ou diretamente na área de trabalho há é uma opção separada "Abrir janela de comando aqui" disponível muito abaixo na lista (que eu não tinha visto antes ...) e isso funciona. @Shinrai - você tem a mesma opção que eu no mesmo lugar? Se não, também penso que alguma extensão é uma peça. (Suponha que eu deveria adicionar isso é Win 7 Pro x64 também. )
DMA57361
@Rerteig - por favor, veja o meu comentário anterior (dividido como apenas 1 @ resposta por comentário). Especificamente - você tem a mesma opção que eu no mesmo lugar? Se não, também penso que alguma extensão é uma peça.
DMA57361
@ DMA57361, vou verificar novamente no escritório, mas eu não acredito que eu faça. Eu não tenho muitas (ou nenhuma?) Extensões instaladas, de modo que soa como uma fonte plausível da diferença.
RBerteig

Respostas:

5

Tendo examinado o registro e perguntou as pessoas no chat , Eu determinei que os parâmetros sendo passados ​​para a instância de cmd que foi invocado aqui estavam incorretas.

O comando pode ser encontrado em [HKEY_CLASSES_ROOT\Directory\shell\cmd\command] e eu tive um (Default) valor de:

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

Alterando isso para o seguinte valor (obtido nesse breve sessão de chat ) resolveu o problema:

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

Dito isso, enquanto o problema é resolvido, não sei o que causou essa alteração inicialmente ...

DMA57361
fonte
Aceito esta resposta (a menos que alguém consiga postar algo mais útil) quando a restrição de auto-aceitação de dois dias expirar.
DMA57361
Não há necessidade de PUSHD. Use o /D opção para CD.
JdeBP
@ JdeBP de fato, isso parece funcionar. Mas, desde que eu obtive o acima, conseguindo outra pessoa para olhar para o seu Win7 isso não vem com qualquer raciocínio. Por acaso você tem um motivo pelo qual seu método sugerido seria melhor do que o que eu já experimentei experimentalmente?
DMA57361
Posso confirmar que meu Win7 pro 64 usa pushd como acima. Eu não sei porque eles usam pushd ao invés de cd /d.
RBerteig
PUSHD faz trabalho adicional acima do que CD /D faz. Somente se você quiser que o trabalho adicional seja feito, é apropriado. É claro que empurra o diretório atual anterior para a pilha de diretórios. Mas também, presumindo que CMD As extensões são ativadas, contornam a criação de letras de unidade temporárias em determinadas circunstâncias.
JdeBP
3

A auto-resposta por DMA57361 claramente resolveu o problema original. Eu pensei em adicionar algumas informações que descobri ....

Primeiro, notei um valor suspeito na chave HKEY_CLASSES_ROOT\Directory\shell\cmd nomeado Extended. Em um palpite, renomei esse valor para xxx-Extended e agora o item de menu "Abrir janela de comando aqui" geralmente aparece sem a tecla Shift. Como a antiga solução tweak-ui não exigia a tecla shift, essa descoberta me deixa feliz!

Em segundo lugar, a minha instalação do Windows 7 Pro de 64 bits relativamente não modificada tem a chave de registro HKEY_CLASSES_ROOT\Directory\shell\cmd\command com apenas um valor padrão de cmd.exe /s /k pushd "%V" set (Note que o tipo é REG_SZ, não REG_EXPAND_SZ. O significado de %V (e o uso relatado de %L ) não são o resultado da substituição de variáveis ​​de ambiente, e a expansão deve ser feita pelo próprio Explorer.

Os plug-ins do menu de contexto disponíveis são listados como subchaves da chave do Registro HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers. (As outras chaves em ....\shellex são manipuladores para outros tipos de extensões de shell.) Um desses manipuladores, ou talvez um dos outros ramais, é provavelmente a origem do estranho valor padrão do ....\command chave.

Editar Uma chave vizinha, HKEY_CLASSES_ROOT\Directory\Background\shell\cmd, também tem um valor chamado Extended. Acontece que este controla o menu de contexto na visualização de conteúdo da pasta (painel direito e a própria área de trabalho) enquanto o nome acima controla o menu de contexto dos próprios objetos de pasta (seus ícones à direita ou na área de trabalho ou em qualquer lugar na árvore de pastas à esquerda).

RBerteig
fonte
Algumas informações úteis, especialmente sobre a desativação do Extended opção, então tem um +1. Obrigado pela contribuição!
DMA57361
1

pushd é necessário se você deseja que o Windows 7 troque as letras de unidade para o diretório, ou seja, alterne a unidade também.

A chave de registro necessária é semelhante à seguinte (eu chamo de DOS) - coloque-a em um arquivo .reg e execute:

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\""
JGP
fonte