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)


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 ...


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).


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\""
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.