Abra o Cygwin em uma pasta específica

226

Como posso criar um atalho do Cygwin que abrirá o Cygwin em uma pasta específica? Isso evitaria ter que digitar

cd /cygdrive/c/Users/Tom/Desktop/

cada vez que lancei o Cygwin.

Randomblue
fonte
2
criar um arquivo .bat: aqui é um tutorial computerhope.com/batch.htm
Umar Jamil
Nota: O pacote chere pode precisar ser instanciado com privilégios de administrador. Se você é pego por isso e é tentado a usá- sudolo, pode não obter o resultado esperado. Nesse caso, efetue login como um usuário administrador na máquina Windows.
precisa saber é o seguinte

Respostas:

410

Quando você instala o Cygwin (ou se já o instalou, faça o download novamente e inicie a instalação novamente para executar uma atualização), certifique-se de selecionar o cherepacote na categoria "Conchas".

Depois Cygwin é iniciado, abra um terminal Cygwin (como administrador) e digite o comando: chere -i -t mintty -s bash.

Agora você deve ter "Bash Prompt Here" no menu de contexto do Windows.

( mintty é o terminal padrão do Cygwin. Se você não o escolher com a -topção, o "Bash Prompt Here" usará o mesmo terminal que o Windows Command Prompt, o que impede o redimensionamento horizontal.)

two7s_clash
fonte
39
Achado impressionante, obrigado! Eu descobri que você pode especificar o terminal que deseja abrir utilizando -t, por exemplo, para mintty aberta você usachere -i -t mintty
Kevin Condon
29
Acabei de testar com o cygwin de 64 bits (1.7.27) e o chere parece existir agora. dica profissional: lembre-se de iniciar o terminal cygwin com privilégios de administrador.
BuildTheRobots
11
Mais uma coisa a se notar. Se você já fez isso chere -i -t mintty -fpara forçar a substituição. Você ainda precisará executar o cygwin como administrador também.
Greg Jennings
29
Teve problemas de permissão no W7x64 (Erro (5): acesso negado. Seção não gravável). Resolvido iniciando o Cygwin como administrador.
DmitrySandalov
17
Cygwin não tinha shell padrão no meu caso, assim que adicionar -s basha make chere -i -t mintty -s bashfeito este trabalho para mim
Bryce Guinta
97

Aqui está o que eu uso. Não requer chereconserto de pacotes ou registros. Funciona no Windows 7.

Vá para a pasta "Enviar para":

C:\Users\<your_user_name>\AppData\Roaming\Microsoft\Windows\SendTo

Crie um atalho chamado Bash Heretendo isso no Targetcampo:

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico  C:\cygwin\bin\bash.exe  -l -c "cd \"$0\" ; exec bash"

No Windows Explorer, clique com o botão direito do mouse em uma pasta e selecione Send To > Bash Here.

E aqui está o truque oposto: abrir um Windows Explorer no seu diretório bash atual. Crie este alias:

alias winx='/cygdrive/c/Windows/explorer.exe /e,\`cygpath -w .\`'

Nota: a cygpath -w .parte acima é colocada em back-ticks.

Agora, basta digitar winxno prompt do bash e um Win Explorer aparece lá.

Nota: Se o winx o direcionar para a pasta de documentos, tente

alias winx='/cygdrive/c/Windows/explorer.exe /e,`cygpath -w $PWD`'
LindseyD
fonte
3
Um truque muito bom, mas o winxalias não funcionou na minha configuração do Cygwin. Eu tive que remover as duas barras invertidas e substituir .por $PWDpara que funcionasse.
Not2qubit
E se o atalho (adaptado para usar o caminho Cygwin64 da minha instalação) abrir o cygwin na minha pasta de usuário? :( Talvez isso funcione apenas com Cygwin de 32 bits? #
Alex Hall
Este também está trabalhando para mimalias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
Wakan Tanka
1
Em cygwin 2.6.0 (no Win 7 x64) que pode ser feito muito mais fácil: cygstart .para abrir Explorer com a pasta atual, ou qualquer sintaxe pasta cygstart .., cygstart /your/pathetc ...
244an
2
Aviso: C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bashmantém o identificador de arquivo aberto no $0diretório, mesmo depois de alterar o diretório de trabalho para outra coisa. O que é pior: a cópia inicial da janela ( ALT+F2), mesmo quando você já mudou o diretório de trabalho, abre outro identificador de arquivo $0. Isso pode interferir em algumas operações que podem ser excluídas / modificadas $0em qualquer processo. Se você ficar 'Permissão negada' erro ao acessar $0esta pode ser a causa
mate
33

No terminal cygwin, execute este comando:

echo "cd your_path" >> ~/.bashrc

O script .bashrc é executado quando você abre uma nova sessão do bash. O código acima com a alteração no diretório your_path quando você abre uma nova sessão do cygwin.

bschwagg
fonte
3
ESTA É A RESPOSTA! TÃO FÁCIL.
Devin Walker
Sim ! Isso é fácil ! Vote !
Alex Byrth #
19
Esta não é a resposta, porque não cria um atalho que usa o diretório mencionado, conforme exigido pela pergunta, mas altera o comportamento de todos os métodos de iniciar o shell Cygwin. Você não deve alterar uma configuração global (ou perfil de logon) para resolver um problema local.
Ben Voigt
Uma vez, usei exatamente esse método para anexar um usuário ao arquivo de senhas, deixando acidentalmente um dos >caracteres. Então eu saí :-)
paxdiablo 15/10
@paxdiablo ouch
bschwagg
30

Eu criei um arquivo .reg que coloca uma opção "Open Cygwin Here" no menu de contexto do botão direito do mouse. Depende do pacote "chere" do Cygwin, que você pode instalar usando o apt-cyg se não o instalou na configuração inicial.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"
John Peter Thompson Garcés
fonte
7
Para quem está se perguntando como usar isso, basta copiar o texto em plano de fundo cinza e colocá-lo em um arquivo de texto chamado "foo.reg" e clicar duas vezes nele.
Andrew Moylan 28/08
3
+1 na melhor solução aqui. E obrigado por mencionar apt-cyg, eu não sabia sobre essa ferramenta.
user11153
Era exatamente isso que eu estava procurando e até me ajudou em outras coisas, porque nem o site da Microsoft me deu o mesmo resultado.
FilBot3
Eu tive que mudar para "cygwin", mas recebo o seguinte erro: "Falha ao executar o / bin / xhere: não existe esse arquivo ou diretório"
Totty.js 28/10/2015
@ Totty.js tem certeza de que instalou o pacote 'chere' no Cygwin?
21816 Jeutnarg
17

Para cygwin64 ou instalações sem chere, você pode usar o seguinte comando em uma entrada do registro (assumindo janelas devido ao seu caminho, assumindo também que o diretório de instalação do cygwin seja c: \ cygwin64)

C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd "`cygpath "%V"`"; bash'

Funciona no arquivo de registro do Windows 7 e 8 disponível para download aqui: http://tomkay.me/blog/Cygwin64---Open-Here-18

Windows Registry Editor Version 5.00
; Open cygwin to folder
; http://tomkay.me - Tom Kay

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"
Tom Kay
fonte
Você pode explicar por que você tem 3 (x2) entradas de registro?
Not2qubit
1
eles são para contextos de diretório, unidade e plano de fundo
Tom Kay
Finalmente, uma solução que funcionou para mim, embora eu tenha alguns problemas para entendê-la completamente ;-) [o 'bash' depois de 'exec bash']. Dica: você pode substituir as 3 entradas por 1: 'Pasta' em vez de 'Diretório', 'Unidade' e 'Plano de fundo'.
t0r0X
com apenas 'Pasta', o link aparece no menu de contexto de uma unidade, mas falha na execução. No entanto, tenho sido capaz de reduzir para 2 entradas com 'Pasta' e 'Directory \ Background'
Tom Kay
1
Para emacs: "C: \\ cygwin \\ bin \\ mintty.exe -i /Cygwin-Terminal.ico / bin / bash -l -c 'emacs \" cygpath \"%V\"\ ";'"
Jan Matousek
12

Se você deseja ter esse diretório como padrão, basta adicionar uma cdinstrução ao seu ~/.profilearquivo.

O que costumo fazer é usar esse método para definir meu diretório usual, além de definir aliases para meus casos comuns:

alias tom="cd /users/tom"

ou seu equivalente. Isso me permite alterar diretórios muito rapidamente.

paxdiablo
fonte
Esse alias também precisa ser adicionado ao ~/.profilearquivo ou apenas ser executado uma vez?
iono 18/03/2013
2
@ Tomomeom, se você apenas executar isso dentro de um shell, isso afetará apenas esse shell. Não afetará nenhuma outra pessoa iniciada. Portanto, se você deseja que ele esteja sempre disponível, é necessário colocá-lo em um dos arquivos de inicialização (dos quais ~/.profileé uma possibilidade).
precisa
não funcionou para mim quando colocado em ~ / .profile, mas ~ / .bashrc funcionou.
zupa
@zupa, as regras sobre quais arquivos de inicialização são originados são razoavelmente complicadas (embora esteja tudo lá na bashpágina de manual, se você se aprofundar o suficiente). Por isso afirmei .profilecomo uma possibilidade.
22413
.profile finalmente origina .bashrc, portanto, você pode querer anexar esse comando ao bashrc. (.profile não funcionou para mim)
Laertis
8

Eu uso o Icon para iniciar o cygwin sem o cherepacote.

  1. Crie um atalho na minha área de trabalho para o terminal cygwin.
  2. Clique com o botão direito do mouse no ícone e selecione Propriedades.
  3. Na guia de atalho, use isto para o TARGET: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. Para INICIAR, coloque o caminho da pasta dir / onde você deseja iniciar o cygwin. ieC:\some\dir\name\here
Doug
fonte
ok 2 coisas 1. anexar -cem "Target" não faz diferença, desde que você forneça um caminho em "Start In" 2. esta solução cria um problema PATH. O cygwin falha ao anexar /usr/local/bin:/usr/binno PATH do sistema deixando incapaz de chamar alguns de seus binários. A configuração provavelmente reside em /etc/profile>> `if [$ {CYGWIN_NOWINPATH-addwinpath} =" addwinpath "]; então `
laertis 13/10
8

Como o two7s_clash disse, você primeiro precisa instalar o cherepacote e configurar o mintty:

  1. Abra o terminal Cygwin como administrador
  2. apt-cyg install chere
  3. chere -i -t mintty

Agora você pode abrir o cygwin em um diretório específico com o botão direito do mouse no Windows Explorer (menu de contexto) e selecionar "Bash Prompt Here".

Você também pode abrir o cygwin a partir de um diretório específico usando o prompt de comando do Windows:

  1. Prompt de comando do Windows aberto
  2. Navegar (cd ) para o diretório personalizado
  3. Executar C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    Este comando abrirá o cygwin com o diretório atual obtido no prompt de comando.

FreeCommander

Este comando também pode ser usado para abrir o cygwin a partir do gerenciador de arquivos personalizado, como o FreeCommander.

Para abrir o cygwin com o diretório atual retirado do FreeCommander, faça o seguinte:

  1. Ferramentas -> Ferramentas Favoritas -> Ferramentas Favoritas editar ... (Ctrl + Shift + Y)
  2. Adicionar uma nova barra de ferramentas (+ Ícone), Atalho: Inserir

    • Nome: cygwin
    • Programa ou pasta: C:\cygwin64\bin\mintty.exe
    • Pasta inicial: %ActivDir%
    • Parâmetro: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

Você pode adicionar um atalho personalizado para abrir o cygwin no FreeCommander:

  1. Ferramentas -> Definir atalhos do teclado
  2. Role para baixo até "Ferramenta favorita 01" (ou "Ferramenta favorita N")
  3. Atribuir nova tecla de atalho: eu uso Ctrl+ Shift+T

Ótima referência: Wiki do MinTTY, artigo Dicas: Iniciando em um diretório específico

nexayq
fonte
5

Para criar um atalho do Windows que inicia um terminal Cygwin em um diretório de sua escolha, tente o seguinte:

  • Clique com o botão direito na área de trabalho do Windows, selecione 'Novo' e, em seguida, selecione 'Atalho'.

  • Para a localização do item, digite o texto a seguir, alterando o minttycaminho conforme necessário e substituindo o nome do diretório desejado, onde indicado.

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd DESIRED-DIRECTORY; exec bash'
    

    Por exemplo, o OP usaria o seguinte texto:

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash'
    
  • Clique em 'Next'.

  • Digite o nome desejado para o atalho e clique em 'Concluir'.

Vários atalhos podem ser colocados na área de trabalho para abrir os terminais Cygwin em vários diretórios frequentemente acessados.

Inspirado na solução publicada em Como abrir um shell Cygwin em um diretório específico do Netbeans? em superuser.com .

Patrick Kelly
fonte
4

Encontre o arquivo Cygwin.bat e crie conteúdo assim:

@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"

Adicione o caminho ao cygwin.bat no ambiente PATH.

Agora, em qualquer pasta, você pode digitar na barra de endereço:

cygwin

Além disso, você pode digitá-lo quando estiver no cmd.exe

Geografia
fonte
3

Usei as seguintes linhas de código para iniciar o zsh no diretório atual do Win7.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="\"C:\\Programmieren\\cygwin64\\bin\\mintty.exe\" -i /Cygwin-Terminal.ico /bin/zsh --login -c 'cd \"%V\";zsh'"

observe que eu usei% V em vez de% L ou% 1 (já que ambos não funcionaram para mim)

H. Hess
fonte
3

Quando uma nova instalação é necessária, eu crio uma "variável de ambiente do usuário" do Windows denominada HOMEe atribuo o caminho aonde quer que "Meus Documentos" residam.

O instalador do cygwin detecta a HOMEvariável, converte automaticamente isso em um caminho de cygpath e seleciona como o meu ~ diretório.

Isso funcionou bem em todas as estações de trabalho que usei profissionalmente nos últimos 5 anos (cerca de 3 ou 4, Win7). Eu sempre fui o único usuário nessas máquinas, não posso dizer qual é o efeito.

Adam.at.Epsilon
fonte
3

Eu criei um script de edição do registro para abrir o Cygwin em qualquer pasta que você clicar com o botão direito. Está no meu GitHub.

Aqui está o meu GitHub

RegEditCódigo de exemplo do Github para máquinas de 64 bits:

REGEDIT4

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
umer936
fonte
Se você receber "Erro ao acessar o registro". resposta de erro ver por @mpersico abaixo ... teria me salvou 15 minutos :)
Daniel Sokolowski
2

Abra o terminal Cygwin como administrador

No PowerShell (usando chocolate):

choco install cyg-get

No cygwin irá instalar o menu do botão direito

cyg-get install chere
chere -i

Agora você pode clicar com o botão direito e usar "Bash Prompt Here" em qualquer pasta.

Jonathan
fonte
1

Você pode adicionar o ícone ao shell adicionando um Iconcampo definido ao caminho do seu Cygwin.icoarquivo.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Cygwin"
"Icon"="\"C:\\cygwin64\\Cygwin.ico\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"
STEELIX
fonte
Eu acho que um pré-requisito para a existência de xhere é a instalação do chere, como mencionado em outras respostas.
Samuel
1

Na minha máquina Windows, não era necessário:

chere -i -t mintty

Como o shell mintty não estava disponível, você pode escolher vários outros shells, como ash bash cmd dash mksh pdksh posh tcsh zsh passwd.

então eu usei:

chere -i -s bash

user3065757
fonte
Mintty não é um shell, é um emulador de terminal.
Palec
Como isso responde à pergunta original?
Leigh
Isso fornecerá a ajuda para aqueles que não têm hortelã no sistema e obtêm erros ao tentar tentar a solução fornecida acima. Também segui a solução fornecida acima, mas ela não funcionou na minha máquina Windows, mas minha resposta resolveu o problema.
user3065757
1

Você pode simplesmente abrir o terminal cygwin e escrever: cd e depois arrastar e soltar a pasta que deseja e depois entrar!

Panagiotis
fonte
Embora isso não resolva completamente a questão, é uma dica muito útil. Obrigado.
RoG
1

Na resposta que usa o registro, descobri que no Windows 2008 R2 SP1, você precisa excluir o plano de fundo do caminho. Além disso, como chere e xhere não fazem parte do cygwin64, aqui está uma solução que funciona para ambos, combinando o registro e as soluções Enviar para. Substitua 'E: \ cygwin64' pelo seu local de instalação:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash\command]
@="E:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico --exec /bin/bash.exe --login -c \"cd '%1' ; exec bash -rcfile ~/.bashrc\""
mpersico
fonte
0

Esta é a única solução de registro Cygwin64 que funcionou para mim no Windows 8.1:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\mintty]
@="Mintty from Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\mintty\command]
@="C:\\cygwin64\\bin\\mintty.exe -h always -e /usr/bin/ash -c 'cd  \"$(/usr/bin/cygpath \"%L\")\";  exec /usr/bin/bash  '"

Certifique-se de modificar o caminho 'C: \ cygwin64' conforme necessário.

Smyrnian
fonte
0

Eu criei o arquivo em lotes e o coloquei no diretório / bin do Cygwin. Este script foi desenvolvido para permitir instalar / desinstalar as entradas do Registro para abrir pastas e unidades selecionadas no Cygwin. Para detalhes, consulte o link http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html .

atualização: Esta solução faz o mesmo que as sugestões anteriores, mas todas as manipulações com o Registro do Windows estão ocultas no script.

Execute o comando para instalar

cyghere.bat /install

Execute o comando para desinstalar

cyghere.bat /uninstall
jsxt
fonte
0

Eu também tive um problema com o git, que costumava "roubar" meus comandos do cygwin - então eu precisava executar,
C:\cygwin\bin\mintty.exe -
mas depois de instalar cheree executar chere -i -t mintty -f como administrador (veja acima), você pode simplesmente usar:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
eu adicionei isso no Total Commander como botão personalizado (à direita) clique no painel> adicionar ...) e funciona muito bem.

Jakub Michalko
fonte
0

Criar um arquivo bash digamos move.shque tenha o seguinte código C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Isso inicia o Cygwin e executa o runFile.shpresente no diretório bin do Cygwin Suponha que você queira navegar para um diretório específico, digamos E:\code que runFile.sh tenha o seguinte códigocd E: cd code

LeelaPrasad4648
fonte
0

Finalmente, uma resposta independente do próprio Cygwin.

Isso usa o fato de que, se eu estiver no diretório C:\\Coole chamar o comando C:\\Cygwin\\bin\\mintty.exe, minttyserá aberto automaticamente no diretório atual, ou seja C:\\Cool,.

Primeiro, você precisará criar o arquivo C:\\Cygwin\\silent_run.vbscom o seguinte conteúdo:

Function EnquoteString(argument)
  EnquoteString = Chr(34) & argument & Chr(34)
End Function

arglist = ""
With WScript.Arguments
    For Each arg In .Unnamed
        ' Wscript.Echo "Unnamed: " & arg
        If InStr(arg, " ") > 0 Then
            ' arg contains a space
            arglist = arglist & " " & EnquoteString(arg)
        Else
            arglist = arglist & " " & arg
        End If
    Next
End With

CreateObject("Wscript.Shell").Run Trim( arglist ), 0, False

Em seguida, para instalar esta resposta, você usará um arquivo de registro do Windows. Para isso, basta colocar o conteúdo do seguinte arquivo em um arquivo chamadoC:\\Cygwin\\AddMinttyToContextMenu.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020

[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here\Command]
@="\"C:\\Cygwin\\bin\\mintty.exe\" -w max"


[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020

[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here\Command]
@="cmd.exe /c cd /d \"%V\" && wscript \"C:\\Cygwin\\silent_run.vbs\" \"C:\\Cygwin\\bin\\mintty.exe\" -w max"

Agora, corrija todos os caminhos codificados, ou seja, C:\\Cygwinno local real em que sua instalação do Cygwin está.

Em seguida, basta abrir o arquivo C:\\Cygwin\\AddMinttyToContextMenu.regpara instalar suas novas entradas do registro e pronto.

O arquivo C:\\Cygwin\\AddMinttyToContextMenu.regfunciona abrindo primeiro a cmd.exe, mudando para o diretório em que você está e, em seguida, chamando C:\\Cygwin\\silent_run.vbspara abrir o C:\\Cygwin\\bin\\mintty.exeterminal com as opções da linha de comando-w max , ou seja, para maximizá-lo.

O script C:\\Cygwin\\silent_run.vbsé necessário para abrir o C:\\Cygwin\\bin\\mintty.exeterminal sem manter o primeiro cmd.exeque abrimos, aberto.

A primeira entrada de C:\\Cygwin\\AddMinttyToContextMenu.regnão é usada C:\\Cygwin\\silent_run.vbsporque, por padrão, as HKEY_CLASSES_ROOT\Directory\Background\shellchaves já estão abertas no diretório atual, então podemos apenas ligar C:\\Cygwin\\bin\\mintty.exediretamente para que funcione imediatamente.

Referências:

  1. Como adicionar item de menu de contexto ao Windows Explorer para pastas
  2. VBScript passa argumento de linha de comando em caminhos com espaços
  3. Como passar um comando com espaços e aspas como um único parâmetro para o CScript?
  4. chamando vbscript de outro arquivo vbscript passando argumentos
  5. https://ss64.com/vb/syntax-args.html
  6. Verifique se a string contém espaço
  7. Executando a linha de comando silenciosamente com VbScript e obtendo saída?
  8. http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
  9. /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
  10. Como executar o script em lote recebido como argumento no VBscript?
  11. Posso passar um argumento para um VBScript (arquivo vbs iniciado com cscript)?
do utilizador
fonte
-1
@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"

Copie os comandos acima em um arquivo de texto e salve-o como .bat em qualquer uma das "suas pastas de interesse". Ele deve abrir o cygwin em "sua pasta de interesse".

Kalyan
fonte
-1

Com base na resposta @LindseyD, criei um arquivo BAT simples, que abre o cygwin no diretório atual, pode ser útil (para mim é). Supondo que você tenha o diretório bin do cygwin no PATH.

FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'
Roman Hocke
fonte
-1

Não sei por que perdi tanto tempo, mas isso funciona para mim na vitória 10, 64 bits:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
Totty.js
fonte
-1

Provavelmente o mais simples:

1) Crie o arquivo foo.reg

2) Inserir conteúdo:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty]
@="open mintty"

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty\command]
@="cmd /C mintty"

3) Execute foo.reg

Agora, basta clicar com o botão direito do mouse em qualquer pasta, clique open minttye ele gerará um sinal de menta nessa pasta.

lama12345
fonte
-2

Melhor fazer como abaixo:

HKEY_CLASSES_ROOT\Directory\shell\BashHere
Enter Data: Bash Here

HKEY_CLASSES_ROOT\Directory\shell\BashHere\command
Enter Data: 

cmd.exe /c C:\cygwin\bin\bash.exe --login -c "cd '%1'; exec /bin/bash"
Shashi Ranjan
fonte