Öffnen Sie Cygwin in einem bestimmten Ordner


226

Wie kann ich eine Cygwin-Verknüpfung erstellen, die Cygwin in einem bestimmten Ordner öffnet? Dies würde das Tippen überflüssig machen

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

Jedes Mal, wenn ich Cygwin starte.


2
Erstellen Sie eine .bat-Datei: Hier ist ein Tutorial computerhope.com/batch.htm
Umar Jamil

Hinweis: Das chere-Paket muss möglicherweise mit Administratorrechten instanziiert werden. Wenn Sie davon erfasst werden und versucht sind, es zu verwenden sudo, erhalten Sie möglicherweise nicht das erwartete Ergebnis. Melden Sie sich in diesem Fall als Administrator auf dem Windows-Computer an.
Dreftymac

Antworten:


410

Wenn Sie Cygwin installieren (oder wenn Sie es bereits installiert haben, laden Sie es erneut herunter und starten Sie das Setup erneut, um ein Update auszuführen), stellen Sie sicher, dass Sie das cherePaket unter der Kategorie "Shells" auswählen .

Öffnen Sie nach dem Start von Cygwin ein Cygwin-Terminal (als Administrator) und geben Sie den folgenden Befehl ein : chere -i -t mintty -s bash.

Jetzt sollte "Bash Prompt Here" im Windows-Kontextmenü mit der rechten Maustaste angezeigt werden.

( Mintty ist das Standardterminal von Cygwin. Wenn Sie es nicht mit der -tOption auswählen , verwendet Ihre "Bash Prompt Here" dasselbe Terminal wie die Windows-Eingabeaufforderung, wodurch eine horizontale Größenänderung verhindert wird.)


39
Super Fund, danke! Ich habe festgestellt, dass Sie das Terminal angeben können, das Sie öffnen möchten -t, z. B. um die von Ihnen verwendete Münze zu öffnenchere -i -t mintty
Kevin Condon

29
Gerade mit 64bit Cygwin (1.7.27) getestet und chere scheint jetzt zu existieren. Tipp: Denken Sie daran, das Cygwin-Terminal mit Administratorrechten zu starten.
BuildTheRobots

11
Noch etwas zu beachten. Wenn Sie dies bereits getan haben chere -i -t mintty -f, um das Überschreiben zu erzwingen. Sie müssen cygwin auch weiterhin als Administrator ausführen.
Greg Jennings

29
Hatte Berechtigungsprobleme auf W7x64 (Fehler (5): Zugriff verweigert. Hive nicht beschreibbar). Behebung durch Starten von Cygwin als Administrator.
DmitrySandalov

17
Cygwin hatte keine Standard-Shell in meinem Fall, so dass das Hinzufügen -s bash, um zu machen, chere -i -t mintty -s bashmachte diese Arbeit für mich
Bryce Guinta

97

Folgendes benutze ich. Es erfordert kein chereBasteln von Paketen oder Registrierungen. Funktioniert unter Windows 7.

Gehen Sie zu Ihrem Ordner "Senden an":

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

Erstellen Sie eine Verknüpfung mit dem Namen " Bash HereFolgendes" im TargetFeld:

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

Im Windows Explorer klicken Sie mit der rechten Maustaste auf einen Ordner und wählen ihn aus Send To > Bash Here.

Und hier ist der umgekehrte Trick: Öffnen Sie einen Windows Explorer in Ihrem aktuellen Bash-Verzeichnis. Erstellen Sie diesen Alias:

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

Hinweis: Der cygpath -w .obige Teil ist in Back-Ticks eingeschlossen.

Geben Sie jetzt einfach winxan der Bash-Eingabeaufforderung ein, und dort wird ein Win Explorer angezeigt.

Hinweis: Wenn winx Sie zu Ihrem Dokumentenordner weiterleitet, versuchen Sie es

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

3
Sehr schöner Trick, aber der winxAlias ​​funktionierte bei meinem Cygwin-Setup nicht. Ich musste die beiden Schrägstriche entfernen und ersetzen .mit $PWDfür sie zu arbeiten.
not2qubit

Was passiert, wenn die Verknüpfung (angepasst an den Cygwin64-Pfad meiner Installation) Cygwin in meinem Benutzerordner öffnet? :( Vielleicht funktioniert das nur mit 32-Bit-Cygwin?
Alex Hall

Dieser arbeitet auch für michalias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
Wakan Tanka

1
In Cygwin 2.6.0 (auf Win 7 x64) kann es viel einfacher durchgeführt werden: cygstart .Explorer mit dem aktuellen Ordner zu öffnen, oder einen beliebigen Ordner Syntax cygstart .., cygstart /your/pathetc ...
244an

2
Warnung: Das C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bashDateihandle bleibt im $0Verzeichnis geöffnet , auch nachdem Sie das Arbeitsverzeichnis in ein anderes geändert haben. Was noch schlimmer ist ALT+F2, wenn eine Kopie des Fensters ( ) erzeugt wird, selbst wenn Sie das Arbeitsverzeichnis bereits geändert haben, wird ein anderes Dateihandle für geöffnet $0. Dies kann einige Vorgänge beeinträchtigen, die $0in einem beliebigen Prozess gelöscht / geändert werden sollen. Wenn beim Zugriff die Fehlermeldung "Berechtigung verweigert" angezeigt wird, ist $0dies möglicherweise die Ursache
matt

33

Führen Sie auf dem Cygwin-Terminal den folgenden Befehl aus:

echo "cd your_path" >> ~/.bashrc

Das .bashrc-Skript wird ausgeführt, wenn Sie eine neue Bash-Sitzung öffnen. Der obige Code ändert sich in das Verzeichnis your_path, wenn Sie eine neue Cygwin-Sitzung öffnen.


3
DAS IST DIE ANTWORT! SO EINFACH.
Devin Walker

Ja ! Das ist einfach ! Stimmen Sie ab!
Alex Byrth

19
Dies ist nicht die Antwort, da keine Verknüpfung erstellt wird, die dieses Verzeichnis verwendet, wie in der Frage gefordert, sondern das Verhalten aller Methoden zum Starten der Cygwin-Shell geändert wird. Sie sollten keine globale Einstellung (oder kein Anmeldeprofil) ändern, um ein lokales Problem zu lösen.
Ben Voigt

Ich habe einmal genau diese Methode verwendet, um einen Benutzer an die Kennwortdatei anzuhängen und versehentlich eines der >Zeichen wegzulassen. Dann habe ich mich abgemeldet :-)
paxdiablo

@paxdiablo autsch
bschwagg

30

Ich habe eine .reg-Datei erstellt, die eine Option "Open Cygwin Here" in das Kontextmenü mit der rechten Maustaste einfügt. Dies hängt vom Cygwin-Paket "chere" ab, das Sie mit apt-cyg installieren können, wenn Sie es bei der Ersteinrichtung nicht installiert haben.

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
Wenn Sie sich fragen, wie Sie dies verwenden sollen, kopieren Sie einfach den Text mit grauem Hintergrund, fügen Sie ihn in eine Textdatei mit dem Namen "foo.reg" ein und doppelklicken Sie darauf.
Andrew Moylan

3
+1 die beste Lösung hier. Und danke für die Erwähnung apt-cyg, ich wusste nichts über dieses Tool
user11153

Dies war genau das, wonach ich gesucht hatte, und es half mir sogar bei anderen Dingen, da selbst die Microsoft-Website nicht das gleiche Ergebnis erzielte.
FilBot3

Ich musste zu "cygwin" wechseln, aber ich erhalte die folgende Fehlermeldung: "Fehler beim Ausführen von / bin / xhere: Keine solche Datei oder kein solches Verzeichnis"
Totty.js

@ Totty.js Sind Sie sicher, dass Sie das 'chere'-Paket in Cygwin installiert haben?
Jeutnarg

17

Für cygwin64 oder Installationen ohne chere können Sie den folgenden Befehl in einem Registrierungseintrag verwenden (vorausgesetzt, Windows aufgrund Ihres Pfads, vorausgesetzt, das cygwin-Installationsverzeichnis ist c: \ cygwin64).

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

Funktioniert unter Windows 7 und 8 Registrierungsdatei, die hier heruntergeladen werden kann: 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'"

Können Sie erklären, warum Sie 3 (x2) Registrierungseinträge haben?
not2qubit

Sie sind für Verzeichnis-, Laufwerks- und Hintergrundkontexte
Tom Kay

Endlich eine Lösung, die für mich funktioniert hat, obwohl ich einige Probleme habe, sie vollständig zu verstehen ;-) [die 'Bash' nach 'Exec Bash']. Hinweis: Sie können die 3 Einträge durch 1 ersetzen: 'Ordner' anstelle von 'Verzeichnis', 'Laufwerk' und 'Hintergrund'.
t0r0X

Mit nur 'Ordner' wird der Link im Kontextmenü eines Laufwerks angezeigt, kann jedoch nicht ausgeführt werden. Ich konnte jedoch mit 'Ordner' und 'Verzeichnis \ Hintergrund' auf 2 Einträge reduzieren
Tom Kay

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

12

Wenn Sie dieses Verzeichnis als Standard verwenden möchten, fügen Sie cdIhrer ~/.profileDatei einfach eine Anweisung hinzu .

Ich benutze diese Methode, um mein übliches Verzeichnis festzulegen und Aliase für meine häufigsten Fälle zu definieren:

alias tom="cd /users/tom"

oder Ihr Äquivalent. Dadurch kann ich sehr schnell Verzeichnisse wechseln.


Muss dieser Alias ​​auch zur ~/.profileDatei hinzugefügt oder nur einmal ausgeführt werden?
Iono

2
@tomeoftom, wenn Sie das nur in einer Shell ausführen, wirkt sich dies nur auf diese Shell aus. Es wirkt sich nicht auf andere aus, die Sie starten. Wenn Sie also möchten, dass es immer verfügbar ist, müssen Sie es in eine Ihrer Startdateien einfügen (von denen dies ~/.profileeine Möglichkeit ist).
Paxdiablo

Bei ~ / .profile hat es bei mir nicht funktioniert, aber ~ / .bashrc hat funktioniert.
Zupa

@zupa, die Regeln, aus denen Startdateien stammen, sind ziemlich kompliziert (obwohl alles auf der bashManpage vorhanden ist, wenn Sie tief genug graben). Deshalb habe ich .profileals eine Möglichkeit angegeben.
Paxdiablo

.profile gibt letztendlich .bashrc an, sodass Sie diesen Befehl möglicherweise stattdessen an bashrc anhängen möchten. (.profile hat bei mir nicht funktioniert)
laertis

8

Ich benutze und Icon, um meinen Cygwin ohne das cherePaket zu starten .

  1. Erstellen Sie auf meinem Desktop eine Verknüpfung für das Cygwin-Terminal.
  2. Klicken Sie erneut auf das Symbol und wählen Sie Eigenschaften aus.
  3. Verwenden Sie dies auf der Registerkarte "Verknüpfung" für das ZIEL: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. Geben Sie für START IN den Pfad des Verzeichnisses / Ordners ein, in dem Sie cygwin starten möchten. dhC:\some\dir\name\here

ok 2 Dinge 1. Das Anhängen -cin "Ziel" macht keinen Unterschied, solange Sie in "Start In" einen Pfad angeben. 2. Diese Lösung verursacht ein Problem mit PATH. cygwin kann /usr/local/bin:/usr/binim Systempfad nicht vorangestellt werden, sodass einige seiner Binärdateien nicht aufgerufen werden können. Die Konfiguration befindet sich wahrscheinlich in /etc/profile>> `if [$ {CYGWIN_NOWINPATH-addwinpath} =" addwinpath "]; dann `
laertis

8

Wie two7s_clash sagte, müssen Sie zuerst das cherePaket installieren und mintty einrichten:

  1. Öffnen Sie das Cygwin-Terminal als Administrator
  2. apt-cyg install chere
  3. chere -i -t mintty

Sie können Cygwin jetzt in einem bestimmten Verzeichnis mit einem Rechtsklick im Windows Explorer (Kontextmenü) öffnen und "Bash Prompt Here" auswählen.

Sie können cygwin auch über die Windows-Eingabeaufforderung aus einem bestimmten Verzeichnis öffnen:

  1. Öffnen Sie die Windows-Eingabeaufforderung
  2. Navigieren Sie ( cd) zum benutzerdefinierten Verzeichnis
  3. Ausführen C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    Dieser Befehl öffnet cygwin mit dem aktuellen Verzeichnis an der Eingabeaufforderung.

FreeCommander

Dieser Befehl kann auch verwendet werden, um cygwin über einen benutzerdefinierten Dateimanager wie FreeCommander zu öffnen.

Gehen Sie wie folgt vor, um cygwin mit dem aktuellen Verzeichnis von FreeCommander zu öffnen:

  1. Werkzeuge -> Lieblingswerkzeuge -> Lieblingswerkzeuge bearbeiten ... (Strg + Umschalt + Y)
  2. Fügen Sie eine neue Symbolleiste (+ Symbol) hinzu, Verknüpfung: Einfügen

    • Name: Cygwin
    • Programm oder Ordner: C:\cygwin64\bin\mintty.exe
    • Ordner starten: %ActivDir%
    • Parameter: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

Sie können eine benutzerdefinierte Verknüpfung zum Öffnen von Cygwin in FreeCommander hinzufügen:

  1. Extras -> Tastaturkürzel definieren
  2. Scrollen Sie nach unten zu "Lieblingswerkzeug 01" (oder "Lieblingswerkzeug N").
  3. Neue Tastenkombination zuweisen: Ich benutze Ctrl+ Shift+T

Gute Referenz: MinTTY Wiki, Artikel Tipps: Starten in einem bestimmten Verzeichnis


5

Versuchen Sie Folgendes, um eine Windows-Verknüpfung zu erstellen, mit der ein Cygwin-Terminal in einem Verzeichnis Ihrer Wahl gestartet wird:

  • Klicken Sie mit der rechten Maustaste auf den Windows-Desktop, wählen Sie "Neu" und dann "Verknüpfung".

  • Geben Sie für den Speicherort des Elements den folgenden Text ein, ändern Sie den minttyPfad nach Bedarf und ersetzen Sie den Namen des gewünschten Verzeichnisses an der angegebenen Stelle.

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

    Das OP würde beispielsweise den folgenden Text verwenden:

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

  • Geben Sie den gewünschten Namen für die Verknüpfung ein und klicken Sie auf "Fertig stellen".

Auf dem Desktop können mehrere Verknüpfungen platziert werden, um Cygwin-Terminals in verschiedenen Verzeichnissen zu öffnen, auf die häufig zugegriffen wird.

Inspiriert von der Lösung unter Öffnen einer Cygwin-Shell in einem bestimmten Verzeichnis von Netbeans aus. bei superuser.com .


4

Suchen Sie die Datei Cygwin.bat und erstellen Sie Inhalte wie folgt:

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

Fügen Sie den Pfad zu cygwin.bat zum Umgebungspfad hinzu.

Jetzt können Sie in jedem Ordner Folgendes eingeben:

cygwin

Sie können es auch eingeben, wenn Sie in cmd.exe


3

Ich habe die folgenden Codezeilen verwendet, um zsh im aktuellen Verzeichnis in Win7 zu starten.

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

Beachten Sie, dass ich% V anstelle von% L oder% 1 verwendet habe (da beide bei mir nicht funktionierten).


3

Wenn eine Neuinstallation erforderlich ist, erstelle ich eine Windows- "Benutzerumgebungsvariable" mit dem Namen HOMEund weist ihr den Pfad zu, wo sich "Eigene Dateien" befinden.

Das Cygwin-Installationsprogramm erkennt die HOMEVariable, übersetzt sie automatisch in einen Cygpath und wählt sie als mein ~ -Verzeichnis aus.

Dies hat für jede Workstation, die ich in den letzten 5 Jahren professionell genutzt habe, gut funktioniert (ca. 3 oder 4, Win7). Ich war schon immer der einzige Benutzer auf diesen Maschinen, kann nicht sagen, was der Effekt ist.


3

Ich habe ein Registrierungsbearbeitungsskript erstellt, um Cygwin in jedem Ordner zu öffnen, auf den Sie mit der rechten Maustaste klicken. Es ist auf meinem GitHub.

Hier ist mein GitHub

Beispielcode RegEditvon Github für 64-Bit-Computer:

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

Wenn Sie "Fehler beim Zugriff auf die Registrierung" erhalten. Fehler siehe Antwort von @mpersico unten ... hätte mir 15 Minuten gespart :)
Daniel Sokolowski

2

Öffnen Sie das Cygwin-Terminal als Administrator

In Powershell (mit Schokolade):

choco install cyg-get

Klicken Sie in cygwin Will Install mit der rechten Maustaste auf das Menü

cyg-get install chere
chere -i

Jetzt können Sie mit der rechten Maustaste klicken und "Bash Prompt Here" in einem beliebigen Ordner verwenden.


1

Sie können das Symbol zur Shell hinzufügen, indem Sie Icondem Pfad zu Ihrer Cygwin.icoDatei ein Feld hinzufügen .

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"

Ich denke, eine Voraussetzung für die Existenz von xhere ist die Installation von chere, wie in anderen Antworten erwähnt.
Samuel

1

Auf meinem Windows-Computer dauerte es nicht:

chere -i -t mintty

Da Mintty Shell nicht verfügbar war, haben Sie möglicherweise die Wahl zwischen verschiedenen anderen Shells wie Ash Bash Cmd Dash Mksh Pdksh Posh Tcsh Zsh Passwd.

Also habe ich verwendet:

chere -i -s bash


Mintty ist keine Shell, sondern ein Terminalemulator.
Palec

Wie beantwortet dies die ursprüngliche Frage?
Leigh

Dies wird denjenigen helfen, die keine Minze in ihrem System haben und beim Versuch, die oben angegebene Lösung zu versuchen, eine Fehlermeldung erhalten. Ich habe auch die oben angegebene Lösung befolgt, aber es hat auf meinem Windows-Computer nicht funktioniert, aber meine Antwort hat das Problem gelöst.
user3065757

1

Sie können einfach das Cygwin-Terminal öffnen und schreiben: cd und nach Drag & Drop den Ordner, den Sie beenden möchten, eingeben!


Dies löst die gestellte Frage zwar nicht vollständig, ist jedoch ein sehr nützlicher Tipp. Vielen Dank.
RoG

1

In der Antwort, die die Registrierung verwendet, habe ich festgestellt, dass Sie unter Windows 2008 R2 SP1 den Hintergrund aus dem Pfad entfernen müssen. Da chere und xhere nicht Teil von cygwin64 sind, ist hier eine Lösung, die für beide funktioniert und die Registry- und die Send To-Lösung kombiniert. Ersetzen Sie 'E: \ cygwin64' durch Ihren Installationsort:

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

Dies ist die einzige Cygwin64-Registrierungslösung, die in Windows 8.1 für mich funktioniert hat:

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

Stellen Sie sicher, dass Sie den Pfad 'C: \ cygwin64' nach Bedarf ändern.


0

Ich habe die Batch-Datei erstellt und in das Verzeichnis / bin von Cygwin gestellt. Dieses Skript wurde entwickelt, um die Registrierungseinträge zum Öffnen ausgewählter Ordner und Laufwerke in Cygwin zu installieren / deinstallieren. Weitere Informationen finden Sie unter dem Link http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html .

Update: Diese Lösung funktioniert genauso wie frühere Vorschläge, aber alle Manipulationen mit der Windows-Registrierung sind im Skript verborgen.

Führen Sie den zu installierenden Befehl aus

cyghere.bat /install

Führen Sie den Befehl zum Deinstallieren aus

cyghere.bat /uninstall

0

Ich hatte auch ein Problem mit git, das meine Cygwin-Befehle "stahl" - also musste ich es ausführen,
C:\cygwin\bin\mintty.exe -
aber nach der Installation chereund Ausführung chere -i -t mintty -f als Administrator (siehe oben) können Sie einfach Folgendes verwenden:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
Ich habe dies in Total Commander als benutzerdefinierte Schaltfläche hinzugefügt (rechts) Klicken Sie auf Panel> Hinzufügen ...) und es funktioniert sehr gut.


0

Erstellen Sie eine Bash-Datei move.shmit dem folgenden Code. C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Dadurch wird Cygwin gestartet und das runFile.shvorhandene Verzeichnis im bin-Verzeichnis von Cygwin ausgeführt. Angenommen, Sie möchten zu einem bestimmten Verzeichnis navigieren, z. B. E:\code runFile.sh hat den folgenden Codecd E: cd code


0

Endlich eine Antwort, die unabhängig von Cygwin selbst ist.

Dies nutzt die Tatsache , dass, wenn ich auf das Verzeichnis bin , C:\\Coolund ich rufe den Befehl C:\\Cygwin\\bin\\mintty.exe, minttyöffnet sich automatisch auf dem aktuellen Verzeichnis, das heißt C:\\Cool.

Zunächst müssen Sie die Datei C:\\Cygwin\\silent_run.vbsmit den folgenden Inhalten erstellen :

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

Als Nächstes verwenden Sie zur Installation dieser Antwort eine Windows-Registrierungsdatei. Fügen Sie dazu einfach den Inhalt der folgenden Datei in eine Datei mit dem Namen einC:\\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"

Korrigieren Sie nun alle fest codierten Pfade, dh C:\\Cygwinan dem tatsächlichen Speicherort, an dem sich Ihre Cygwin-Installation befindet.

Öffnen Sie dann einfach die Datei C:\\Cygwin\\AddMinttyToContextMenu.reg, um Ihre neuen Registrierungseinträge zu installieren, und Sie sind fertig.

Die Datei C:\\Cygwin\\AddMinttyToContextMenu.regöffnet zunächst a cmd.exe, wechselt in das Verzeichnis, in dem Sie sich befinden, und ruft dann C:\\Cygwin\\silent_run.vbsauf, um das C:\\Cygwin\\bin\\mintty.exeTerminal mit den Befehlszeilenoptionen zu öffnen-w max zu öffnen, dh um es maximiert zu öffnen.

Das Skript C:\\Cygwin\\silent_run.vbsist erforderlich, um das C:\\Cygwin\\bin\\mintty.exeTerminal zu öffnen, ohne dass das erste, das cmd.exewir geöffnet haben, geöffnet bleibt .

Der erste Eintrag von C:\\Cygwin\\AddMinttyToContextMenu.regwird nicht verwendet, C:\\Cygwin\\silent_run.vbsda die HKEY_CLASSES_ROOT\Directory\Background\shellSchlüssel standardmäßig bereits im aktuellen Verzeichnis geöffnet sind. Dann können wir einfach aufrufenC:\\Cygwin\\bin\\mintty.exe direkt , damit es sofort funktioniert.

Verweise:

  1. So fügen Sie dem Windows Explorer ein Kontextmenüelement für Ordner hinzu
  2. Befehlszeilenargument für VBScript-Übergabe in Pfaden mit Leerzeichen
  3. Wie übergebe ich einen Befehl mit Leerzeichen und Anführungszeichen als einzelnen Parameter an CScript?
  4. Aufrufen von vbscript aus einer anderen vbscript-Datei, wobei Argumente übergeben werden
  5. https://ss64.com/vb/syntax-args.html
  6. Überprüfen Sie, ob die Zeichenfolge Leerzeichen enthält
  7. Kommandozeile still mit VbScript ausführen und Ausgabe bekommen?
  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. Wie führe ich ein Batch-Skript aus, das als Argument in VBscript empfangen wurde?
  11. Kann ich ein Argument an ein VBScript übergeben (mit cscript gestartete vbs-Datei)?

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

Kopieren Sie die obigen Befehle in eine Textdatei und speichern Sie sie als .bat in einem beliebigen "Ordner von Interesse". Es sollte cygwin in "Ihrem Ordner von Interesse" öffnen.


-1

Basierend auf der @ LindseyD-Antwort habe ich eine einfache BAT-Datei erstellt, die Cygwin im aktuellen Verzeichnis öffnet. Dies kann nützlich sein (für mich ist es das). Angenommen, Sie haben das bin-Verzeichnis von cygwin in PATH.

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

-1

Ich weiß nicht, warum ich so viel Zeit verschwenden musste, aber das funktioniert bei Gewinn 10, 64 Bit für mich:

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

Wahrscheinlich die einfachste:

1) Erstellen Sie die Datei foo.reg

2) Inhalt einfügen:

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) Führen Sie foo.reg aus

Klicken open minttySie jetzt einfach mit der rechten Maustaste in einen beliebigen Ordner, und es wird Minze in diesem Ordner erzeugt.


-2

Am besten wie unten:

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"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.