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

6

Quando eu [ Shift + Clique com o botão direito] uma pasta que não está na minha unidade C e selecione "Abrir console aqui "Eu recebo uma janela cmd que não é aberta 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 ...

Observação: ele funciona corretamente para locais na unidade C .

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 do console apontando para uma pasta na minha área de trabalho, assim:

Selecionando"Abrir console aqui" do shift + clique com o botão direito do mouse para a pasta na área de trabalho

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

JanelaCMDquemostrainicialmenteapastaC:\win\sys32,masumúnicocomando"D:" muda para localização correta.

Atualizar

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

Para completar, vejo que provavelmente a janela padrão de comando "Abrir aqui" fica mais abaixo na lista ao clicar dentro de uma pasta (é "espaço no arquivo", não no próprio ícone da pasta), conforme a imagem abaixo , então há alguma diferença entre os dois:

    
por DMA57361 28.02.2011 / 22:30

3 respostas

5

Tendo examinado o registro e pessoas no chat , determinei que os parâmetros que estão sendo transmitidos para a instância de cmd que foi chamada aqui estavam incorretos.

O comando pode ser encontrado em [HKEY_CLASSES_ROOT\Directory\shell\cmd\command] e eu tive um valor (Default) 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 é corrigido, não sei o que causou essa alteração inicialmente ...

    
por 01.03.2011 / 20:50
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 named 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, minha instalação do Windows 7 Pro relativamente modificada de 64 bits 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 (Observe que o tipo é REG_SZ, não REG_EXPAND_SZ. O significado de %V ( e o uso relatado de %L ) não é o resultado da substituição da variável 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 de 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 uma das outras extensões, provavelmente é a origem do estranho valor padrão da chave ....\command .

Editar Uma chave vizinha, HKEY_CLASSES_ROOT\Directory\Background\shell\cmd , também possui um valor denominado 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).

    
por 02.03.2011 / 23:21
1

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

A chave de registro necessária se parece com a 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\""
    
por 18.07.2011 / 08:39