Apri Cygwin in una cartella specifica


226

Come posso creare un collegamento Cygwin che aprirà Cygwin in una cartella specifica? Ciò eviterebbe di dover digitare

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

ogni volta che lancio Cygwin.


2
creare un file .bat: ecco un tutorial computerhope.com/batch.htm
Umar Jamil,

Nota: potrebbe essere necessario creare un'istanza del pacchetto chere con i privilegi di amministratore. Se sei preso da questo e sei tentato di usarlo sudo, potresti non ottenere il risultato atteso. In questo caso, accedi come utente amministratore sul computer Windows.
dreftymac,

Risposte:


410

Quando installi Cygwin (o se l'hai già installato, scaricalo di nuovo e riavvia l'installazione per eseguire un aggiornamento), assicurati di selezionare il cherepacchetto nella categoria "Conchiglie".

Dopo Cygwin viene lanciato, aprire un terminale Cygwin (come amministratore) e digitare il comando: chere -i -t mintty -s bash.

Ora dovresti avere "Bash Prompt Here" nel menu contestuale del tasto destro di Windows.

( mintty è il terminale predefinito di Cygwin. Se non lo si sceglie con l' -topzione, il "Prompt Bash qui" utilizzerà lo stesso terminale del Prompt dei comandi di Windows, che impedisce il ridimensionamento orizzontale.)


39
Fantastica scoperta, grazie! Ho scoperto che è possibile specificare il terminale che si desidera aprire utilizzando -t, ad esempio, per aprire mintty che si utilizzachere -i -t mintty
Kevin Condon,

29
Appena testato con Cygwin a 64 bit (1.7.27) e Chere sembra ora esistere. suggerimento: ricordati di avviare cygwin terminal con privilegi di amministratore.
BuildTheRobots,

11
Un'altra cosa da notare. Se lo hai già fatto chere -i -t mintty -fper forzare la sovrascrittura. Sarà comunque necessario eseguire cygwin anche come amministratore.
Greg Jennings,

29
Problemi di autorizzazione su W7x64 (errore (5): accesso negato. Hive non scrivibile). Risolto avviando Cygwin come amministratore.
DmitrySandalov,

17
Cygwin non aveva una shell predefinita nel mio caso, quindi aggiungendo -s bashper far chere -i -t mintty -s bashfunzionare questo per me
Bryce Guinta,

97

Ecco cosa uso. Non richiede chereaggiustamenti di pacchetti o registri. Funziona su Windows 7.

Vai alla cartella "Invia a":

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

Crea un collegamento chiamato Bash Herecon questo nel Targetcampo:

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

In Esplora risorse, fai clic con il pulsante destro del mouse su una cartella e seleziona Send To > Bash Here.

Ed ecco il trucco opposto, aprendo un Esplora risorse nella tua directory bash corrente. Crea questo alias:

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

Nota: la cygpath -w .parte sopra è racchiusa tra i segni di spunta.

Ora basta digitare winxal prompt di bash e un Win Explorer si apre lì.

Nota: se winx indirizza l'utente alla cartella dei documenti, provare

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

3
Trucco molto bello, ma l' winxalias non ha funzionato sulla mia configurazione Cygwin. Ho dovuto rimuovere entrambi i backslash e sostituirlo .con $PWDper farlo funzionare.
not2qubit,

Cosa succede se il collegamento (adattato per utilizzare il percorso Cygwin64 della mia installazione) apre cygwin nella mia cartella utente? :( Forse questo funziona solo con Cygwin a 32 bit?
Alex Hall,

Anche questo funziona per mealias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
Wakan Tanka,

1
In cygwin 2.6.0 (su Win 7 x64) può essere fatto molto più facilmente: cygstart .aprire Explorer con la cartella corrente o qualsiasi sintassi di cartella cygstart .., cygstart /your/pathecc ...
244an

2
Attenzione: C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bashmantiene l'handle del file aperto nella $0directory, anche dopo aver cambiato la directory di lavoro in qualcos'altro. Quel che è peggio spawn copia della finestra ( ALT+F2), anche quando hai già cambiato directory di lavoro, apre un altro file handle a $0. Ciò potrebbe interferire con alcune operazioni che potrebbero voler eliminare / modificare $0in qualsiasi processo. Se viene visualizzato l'errore "Autorizzazione negata" durante l'accesso, $0questa potrebbe essere la causa
matt

33

Dal terminale cygwin, eseguire questo comando:

echo "cd your_path" >> ~/.bashrc

Lo script .bashrc viene eseguito quando si apre una nuova sessione bash. Il codice sopra con cambia nella directory your_path quando apri una nuova sessione cygwin.


3
QUESTA È LA RISPOSTA! COSÌ FACILE.
Devin Walker,

Sì ! Questo è facile ! Vota!
Alex Byrth,

19
Questa non è la risposta, perché non crea un collegamento che utilizza detta directory, come richiesto dalla domanda, cambia il comportamento di tutti i metodi di avvio della shell Cygwin. Non è necessario modificare un'impostazione globale (o profilo di accesso) per risolvere un problema locale.
Ben Voigt,

Una volta ho usato esattamente questo metodo per aggiungere un utente al file delle password, tralasciando accidentalmente uno dei >caratteri. Poi sono uscito :-)
paxdiablo il

@paxdiablo ouch
bschwagg,

30

Ho creato un file .reg che inserisce un'opzione "Apri Cygwin Here" nel menu contestuale del tasto destro. Dipende dal pacchetto "chere" di Cygwin, che puoi installare usando apt-cyg se non lo hai installato nella configurazione iniziale.

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"

7
Per coloro che si chiedono come usarlo, basta copiare il testo con sfondo grigio e inserirlo in un file di testo chiamato "foo.reg" e fare doppio clic su di esso.
Andrew Moylan,

3
+1 la migliore soluzione qui. E grazie per la menzione apt-cyg, non sapevo di questo strumento
user11153

Questo era esattamente quello che stavo cercando, e mi ha anche aiutato con altre cose perché anche il sito Microsoft non mi ha dato lo stesso risultato.
FilBot3,

Ho dovuto passare a "cygwin" ma ho visualizzato questo errore: "Impossibile eseguire / bin / xhere: nessun file o directory simile"
Totty.js,

@ Totty.js sei sicuro di aver installato il pacchetto 'chere' in Cygwin?
Jeutnarg,

17

Per cygwin64 o installazioni senza chere è possibile utilizzare il seguente comando in una voce del registro (presupponendo che Windows sia dovuto al proprio percorso, anche se la directory di installazione di cygwin è c: \ cygwin64)

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

Funziona su Windows 7 e 8 File di registro disponibili per il download qui: 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'"

Puoi spiegare perché hai 3 (x2) voci del registro?
not2qubit,

1
sono per i contesti Directory, Drive e Background
Tom Kay

Infine, una soluzione che ha funzionato per me, anche se ho qualche problema a comprenderla completamente ;-) [il 'bash' dopo 'exec bash']. Suggerimento: è possibile sostituire le 3 voci con 1: "Cartella" anziché "Directory", "Unità" e "Sfondo".
t0r0X,

con solo 'Cartella', il collegamento appare nel menu contestuale di un'unità, ma non riesce ad eseguirsi. Tuttavia, sono stato in grado di ridurre a 2 voci con "Cartella" e "Directory \ Sfondo"
Tom Kay,

1
Per emacs: "C: \\ cygwin \\ bin \\ mintty.exe -i /Cygwin-Terminal.ico / bin / bash -l -c 'emacs \" cygpath \"%V\"\ ";'"
Jan Matousek

12

Se vuoi avere quella directory come predefinita, aggiungi semplicemente cdun'istruzione al tuo ~/.profilefile.

Quello che tendo a fare è usare quel metodo per impostare la mia solita directory, oltre a definire alias anche per i miei casi comuni:

alias tom="cd /users/tom"

o il tuo equivalente. Questo mi permette di cambiare directory molto velocemente.


Anche questo alias deve essere aggiunto al ~/.profilefile o eseguito una volta sola?
iono il

2
@tomeoftom, se lo esegui solo all'interno di una shell, avrà effetto solo su quella shell. Non influenzerà nessun altro che inizi. Quindi, se vuoi che sia sempre disponibile, devi metterlo in uno dei tuoi file di avvio (di cui ~/.profileè una possibilità).
paxdiablo,

non ha funzionato per me quando inserito in ~ / .profile, ma ~ / .bashrc ha funzionato.
Zupa,

@zupa, le regole su cui provengono i file di avvio sono ragionevolmente complicate (anche se è tutto lì nella bashpagina man se scavi abbastanza in profondità). Ecco perché ho affermato .profilecome una possibilità.
paxdiablo,

.profile alla fine genera .bashrc, quindi potresti voler aggiungere quel comando in bashrc. (.profile non ha funzionato per me)
laertis,

8

Uso e Icon per avviare Cygwin senza il cherepacchetto.

  1. Crea un collegamento sul mio desktop per il terminale Cygwin.
  2. Fare di nuovo clic sull'icona e selezionare le proprietà.
  3. Nella scheda di scelta rapida, utilizzare questo per il TARGET: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. Per START IN, inserisci il percorso della cartella dir / in cui vuoi avviare cygwin. vale a direC:\some\dir\name\here

ok 2 cose 1. l'aggiunta -cin "Target" non fa differenza finché si fornisce un percorso in "Start In" 2. questa soluzione crea un problema con PATH. cygwin non riesce a anteporre /usr/local/bin:/usr/binal sistema PATH non riuscendo a richiamare alcuni dei suoi binari La configurazione risiede probabilmente in /etc/profile>> `if [$ {CYGWIN_NOWINPATH-addwinpath} =" addwinpath "]; poi `
laertis,

8

Come ha detto two7s_clash, devi prima installare il cherepacchetto e installare mintty:

  1. Aprire il terminale Cygwin come amministratore
  2. apt-cyg install chere
  3. chere -i -t mintty

Ora puoi aprire cygwin in una directory specifica con un clic destro in Esplora risorse (menu contestuale) e selezionare "Bash Prompt Here".

Puoi anche aprire cygwin da una directory specifica usando il prompt dei comandi di Windows:

  1. Apri il prompt dei comandi di Windows
  2. Passare ( cd) alla directory personalizzata
  3. Eseguire C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    Questo comando aprirà cygwin con la directory corrente presa dal prompt dei comandi.

FreeCommander

Questo comando può anche essere usato per aprire cygwin dal file manager personalizzato, come FreeCommander.

Per aprire cygwin con la directory corrente presa da FreeCommander, procedi come segue:

  1. Strumenti -> Strumenti preferiti -> Strumenti preferiti modifica ... (Ctrl + Maiusc + Y)
  2. Aggiungi una nuova barra degli strumenti (+ Icona), Collegamento: Inserisci

    • Nome: cygwin
    • Programma o cartella: C:\cygwin64\bin\mintty.exe
    • Avvia cartella: %ActivDir%
    • Parametro: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

È possibile aggiungere un collegamento personalizzato per aprire cygwin da FreeCommander:

  1. Strumenti -> Definisci scorciatoie da tastiera
  2. Scorri verso il basso fino a "Strumento preferito 01" (o "Strumento preferito N")
  3. Assegna nuovo tasto di scelta rapida: utilizzo Ctrl+ Shift+T

Grande riferimento: MinTTY Wiki, articolo Suggerimenti: a partire da una directory particolare


5

Per creare un collegamento di Windows che avvii un terminale Cygwin in una directory di tua scelta, prova quanto segue:

  • Fare clic con il tasto destro sul desktop di Windows, selezionare "Nuovo", quindi selezionare "Collegamento".

  • Per la posizione dell'elemento, immettere il testo seguente, modificando il minttypercorso secondo necessità e sostituendo il nome della directory desiderata dove indicato.

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

    Ad esempio, il PO utilizzerà il seguente testo:

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash'
    
  • Fai clic su "Avanti".

  • Immettere il nome desiderato per il collegamento e fare clic su "Fine".

È possibile posizionare più collegamenti sul desktop per aprire i terminali Cygwin in varie directory a cui si accede spesso.

Ispirato dalla soluzione pubblicata su Come aprire una shell Cygwin in una directory specifica da Netbeans? su superuser.com .


4

Trova il file Cygwin.bat e crea contenuti come questo:

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

Aggiungi il percorso a cygwin.bat all'ambiente PATH.

Ora in qualsiasi cartella puoi digitare nella barra degli indirizzi:

cygwin

Inoltre puoi digitarlo quando sei in cmd.exe


3

Ho usato le seguenti righe di codice per avviare zsh nella directory corrente in 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'"

nota che ho usato% V invece di% L o% 1 (poiché entrambi non hanno funzionato per me)


3

Quando è necessaria una nuova installazione, creo una "variabile di ambiente utente" di Windows denominata HOMEe le assegna il percorso in cui risiede "Documenti".

Il programma di installazione di Cygwin rileva la HOMEvariabile, la traduce automaticamente in un cygpath e la seleziona come mia directory ~.

Questo ha funzionato bene per ogni workstation che ho usato professionalmente negli ultimi 5 anni (circa 3 o 4, Win7). Sono sempre stato l'unico utente su queste macchine, non posso dire quale sia l'effetto.


3

Ho creato uno script di modifica del registro per aprire Cygwin in qualsiasi cartella fai clic con il tasto destro. È sul mio GitHub.

Ecco il mio GitHub

RegEditCodice di esempio da Github per macchine a 64 bit:

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

Se viene visualizzato il messaggio "Errore durante l'accesso al registro". errore vedi risposta di @mpersico sotto ... mi avrebbe risparmiato 15 minuti :)
Daniel Sokolowski,

2

Aprire il terminale Cygwin come amministratore

In PowerShell (usando Chocolatey):

choco install cyg-get

In cygwin verrà installato il menu di scelta rapida

cyg-get install chere
chere -i

Ora puoi fare clic con il pulsante destro del mouse e utilizzare "Bash Prompt Here" in qualsiasi cartella.


1

È possibile aggiungere l'icona alla shell aggiungendo un Iconset di campi al percorso del Cygwin.icofile.

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"

Penso che un prerequisito per l'esistenza di xhere sia l'installazione di chere, come menzionato in altre risposte.
Samuel

1

Sul mio computer Windows non stava prendendo:

qui -i -t menta

Perché la shell mintty non era disponibile, ma potevi scegliere tra varie altre shell come ash bash cmd dash mksh pdksh posh tcsh zsh passwd.

quindi ho usato:

chere -i -s bash


Mintty non è una shell, è un emulatore di terminale.
Palec,

Come risponde alla domanda originale?
Leigh,

Questo fornirà l'aiuto a coloro che non hanno la zecca nel loro sistema e ottengono errori quando provano a provare la soluzione fornita sopra, ho anche seguito la soluzione fornita sopra ma non ha funzionato sulla mia macchina Windows, ma la mia risposta ha risolto il problema.
user3065757

1

Puoi semplicemente aprire il terminale Cygwin e scrivere: cd e dopo trascinare e rilasciare la cartella che vuoi finire!


Sebbene ciò non risolva completamente la domanda posta, è un suggerimento molto utile. Grazie.
RoG

1

Nella risposta che utilizza il registro, ho scoperto che su Windows 2008 R2 SP1, è necessario eliminare lo sfondo dal percorso. Inoltre, poiché chere e xhere non fanno parte di cygwin64, ecco una soluzione che funziona per entrambi, combinando il registro e le soluzioni Invia a. Sostituisci "E: \ cygwin64" con il percorso di installazione:

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

0

Questa è l'unica soluzione di registro Cygwin64 che ha funzionato per me in 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  '"

Assicurati di modificare il percorso 'C: \ cygwin64' come necessario.


0

Ho creato il file batch e l'ho messo nella directory / bin di Cygwin. Questo script è stato sviluppato in modo da consentire l'installazione / disinstallazione delle voci di registro per l'apertura di cartelle e unità selezionate in Cygwin. Per dettagli, consultare il link http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html .

aggiornamento: questa soluzione fa lo stesso dei primi suggerimenti ma tutte le manipolazioni con il registro di Windows sono nascoste all'interno dello script.

Eseguire il comando per l'installazione

cyghere.bat /install

Eseguire il comando per disinstallare

cyghere.bat /uninstall

0

Ho anche avuto problemi con git, che era solito "rubare" i miei comandi cygwin - quindi avevo bisogno di eseguire
C:\cygwin\bin\mintty.exe -
ma dopo l'installazione cheree l'esecuzione chere -i -t mintty -f come amministratore (vedi sopra), puoi semplicemente usare:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
Ho aggiunto questo in Total Commander come pulsante personalizzato (a destra fai clic sul pannello> aggiungi ...) e funziona molto bene.


0

Creare un file bash dire move.shche ha il seguente codice C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Questo avvia Cygwin ed esegue il runFile.shpresente nella directory bin di Cygwin Supponiamo che tu voglia navigare in una directory specifica, E:\code quindi runFile.sh ha il seguente codicecd E: cd code


0

Finalmente una risposta indipendente dallo stesso Cygwin.

Questo utilizza il fatto che, se mi trovo nella directory C:\\Coole chiamo il comando C:\\Cygwin\\bin\\mintty.exe, minttysi aprirà automaticamente nella directory corrente, ovvero C:\\Cool.

Innanzitutto, dovrai creare il file C:\\Cygwin\\silent_run.vbscon i seguenti contenuti:

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

Successivamente, per installare questa risposta, utilizzerai un file di registro di Windows. Per questo, basta inserire il contenuto del seguente file in un file denominatoC:\\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"

Ora, correggi tutti i percorsi codificati, ovvero C:\\Cygwinla posizione effettiva in cui si trova l'installazione di Cygwin.

Quindi, basta aprire il file C:\\Cygwin\\AddMinttyToContextMenu.regper installare le nuove voci del registro e il gioco è fatto.

Il file C:\\Cygwin\\AddMinttyToContextMenu.regfunziona aprendo prima a cmd.exe, passando alla directory in cui ci si trova, quindi chiamando C:\\Cygwin\\silent_run.vbsper aprire il C:\\Cygwin\\bin\\mintty.exeterminale con le opzioni della riga di comando -w max, ovvero per aprirlo al massimo.

Lo script C:\\Cygwin\\silent_run.vbsè necessario per aprire il C:\\Cygwin\\bin\\mintty.exeterminale senza tenere cmd.exeaperto il primo che abbiamo aperto.

La prima voce di C:\\Cygwin\\AddMinttyToContextMenu.regnon viene utilizzata C:\\Cygwin\\silent_run.vbsperché per impostazione predefinita le HKEY_CLASSES_ROOT\Directory\Background\shellchiavi sono già aperte nella directory corrente, quindi possiamo semplicemente chiamare C:\\Cygwin\\bin\\mintty.exedirettamente per farlo funzionare immediatamente.

Riferimenti:

  1. Come aggiungere la voce di menu contestuale a Esplora risorse per cartelle
  2. VBScript passa l'argomento della riga di comando in percorsi con spazi
  3. Come passare un comando con spazi e virgolette come singolo parametro a CScript?
  4. chiamando vbscript da un altro file vbscript passando argomenti
  5. https://ss64.com/vb/syntax-args.html
  6. Controlla se la stringa contiene spazio
  7. Esegui la riga di comando in silenzio con VbScript e ottieni output?
  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. Come eseguire lo script Batch ricevuto come argomento su VBscript?
  11. Posso passare un argomento a un VBScript (file vbs avviato con cscript)?

-1
@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"

Copia i comandi sopra in un file di testo e salvalo come .bat in una qualsiasi delle "tue cartelle di interesse". Dovrebbe aprire cygwin nella "cartella di interesse".


-1

basato sulla risposta di @LindseyD ho creato un semplice file BAT, che apre cygwin nella directory corrente, può essere utile (per me lo è). Supponendo che tu abbia la directory bin di cygwin in PERCORSO.

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

-1

Non so perché ho dovuto perdere così tanto tempo, ma per me funziona con 10, 64 bit:

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

-1

Probabilmente il più semplice:

1) Crea il file foo.reg

2) Inserisci contenuto:

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) Eseguire foo.reg

Ora fai semplicemente clic con il pulsante destro del mouse in qualsiasi cartella, fai clic open minttye verrà generato in quella cartella.


-2

Meglio fare come di seguito:

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"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.