
Acabei de configurar meu ambiente Dev em um PC com Windows 7. Para uso em linha de comando e Terminal, instalei o programa chamado Console2 que é incrível para quem usa o Terminal em uma máquina Windows.
Uma das coisas importantes que eu precisava era a capacidade de acessar pastas no terminal rapidamente, sem sempre fazer cd /directroy/name/etc/etc
isso. Meu objetivo era um menu de contexto do botão direito dentro de uma pasta no Explorer.
Consegui fazer isso com as seguintes modificações/adições de chave de registro
[HKEY_CLASSES_ROOT\Directory\shell\open_console]
@=Open Console2 Here
Icon=C:\Program Files\Console2\Console.ico
[HKEY_CLASSES_ROOT\Directory\shell\open_console\Command]
@=C:\Program Files\Console2\Console.exe -d "%v"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\open_console]
@=Open Console2 Here
Icon=C:\Program Files\Console2\Console.ico
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\open_console\Command]
@=C:\Program Files\Console2\Console.exe -d "%v"
Funciona muito bem, agora posso ver um menu de contexto para abrir uma janela de terminal no caminho de uma pasta de duas maneiras.
- Ao clicar com o botão direito no nome de uma pasta, será exibido "Abra Console2 aqui"
- Ao abrir uma pasta e clicar com o botão direito em segundo plano, posso ver o mesmo menu de contexto para abrir o terminal também.
Agora, meu problema é que muitas vezes acesso pastas e áreas de trabalho usando as Bibliotecas do Windows. Isso faz com que meu menu de contexto não funcione quando estou acessando uma pasta por meio da Biblioteca, em vez de ir diretamente para a pasta.
Por exemplo, se eu abrir o Explorer e for para...
E:\Server\htdocs\labs\javascript\SampleJSProject
então posso visualizar e usar meu menu de contexto personalizado.
No entanto, se eu acessar a mesma pasta usando meus atalhos/bibliotecas, o caminho ficará assim...
Libaries\Server Labs\javascript\SampleJSProject
e agora meu menu de contexto para abrir o terminal não aparece. Se eu clicar na área Endereço, ele mostrará o caminho completo correto, conforme listado acima.
Espero que seja uma solução fácil, como adicionar outra chave de registro em algum lugar, mas não tenho certeza de onde.
Alguém tem alguma idéia ou solução?
Responder1
O truque aqui é que as pastas da biblioteca têm sua própria chave.
Curiosamente, é "LibraryFolders", então você precisaria modificar ESSA chave para obter o efeito desejado.
Por exemplo, para adicionar a entrada de contexto "Abrir janela de comando aqui" a uma pasta de biblioteca, use o seguinte registro:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\LibraryFolder\Background]
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell]
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\cmd]
@="@shell32.dll,-8506"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""
HTH
-(e)
Responder2
Para expandirresposta de Sweetlilmre:
Se você não tem direitos para editar HKEY_CLASSES_ROOT
(um problema que surgiu para mim no laptop da minha empresa), você também pode editar arquivos HKEY_CURRENT_USER\Software\Classes\LibraryFolder\Background\shell\cmd\command
.
Você pode ter que criar LibraryFolder
suas subchaves (eu tive que fazer), mas é o suficiente para criar chaves vazias.
cmd
também pode ter um nome diferente, a única coisa que importa é o valor dessa chave (que é o texto mostrado no menu de contexto) e a command
chave, cujo valor será executado. Aparentemente, é suficiente usar cmd.exe
como comando; a linha de comando é iniciada automaticamente no diretório em que você clicou com o botão direito, sem necessidade de parâmetros adicionais (pelo menos no Win 7 Enterprise, que estou usando).
Não estou particularmente familiarizado com scripts de edição de registro, então fiz essas coisas manualmente. Se alguém souber como expressar as informações acima em um script, sinta-se à vontade para editá-las nesta resposta.
Bônus: se você adicionar uma chave de string cmd
(ou o nome que você deu) chamada "Ícone" e definida como "cmd.exe", sua entrada no menu de contexto também será acompanhada por um ícone.
Veja estas imagens sobre como seu registro deve ficar após as etapas acima (como mencionado, LibraryFolder
é filho de HKEY_CURRENT_USER\Software\Classes
):