
Ich kann git-bash auf verschiedene Arten über die Windows-Eingabeaufforderung starten:
"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"
Ich möchte git-bash mit einem solchen Aufruf in einem bestimmten Verzeichnis starten.
Zum Kontext: Ich mache das im SAS Enhanced Editor. Der eigentliche Aufruf ist
%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);
Für diejenigen, die mit SAS nicht vertraut sind: %sysexec
Öffnet eine Instanz der Windows-Eingabeaufforderung und gibt den als Argument angegebenen Befehl aus. Funktioniert überraschend gut. Ich möchte jedoch die Möglichkeit haben, Git-Bash in einem bestimmten Verzeichnis zu starten, nicht nur in Home.
Zu diesem Zweck kann ich einen Eintrag erstellen in .bashrc
:
cd /c/new/starting/dir
Das Problem dabei besteht jedoch darin, dass jedes Mal, wenn ich eine Git-Bash öffne, beispielsweise über das Kontextmenü in einem bestimmten Ordner, das Standardverzeichnis das von ist .bashrc
.
Ich sehe dasEs gibt Git-Bash-Startoptionenwie --cd-to-home
oder --cd=<path>
, aber ich kann sie nicht zum Laufen bringen. Zum Beispiel,
"C:\Program Files\Git\bin\sh.exe" --cd-to-home
"C:\Program Files\Git\bin\sh.exe --cd-to-home"
"C:\Program Files\Git\git-bash.exe" --cd-to-home
"C:\Program Files\Git\git-bash.exe --cd-to-home"
etc.
Ist es möglich, Git-Bash in einem bestimmten Verzeichnis über die Windows-Eingabeaufforderung zu starten? Wenn ja, wie lautet die richtige Syntax?
BONUS: Bonuspunkte für die Eingabe von 50 Zeichen oder weniger
Antwort1
"C:\Program Files\Git\git-bash.exe" --cd=c:\path\to\folder
Antwort2
Eine mögliche Lösung besteht darin, das Verzeichnis zu ändern, bevor Sie git-bash öffnen. Standardmäßig wird git-bash im aktuellen Verzeichnis geöffnet. Um dies zu tun, setzen Sie einen cd
Aufruf vor das start
,
cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"
Da dies in SAS erfolgt, kann das spezifische Verzeichnis in einer Makrovariable gespeichert werden. Dies garantiert die Anforderung, dass es innerhalb von 50 Zeichen liegen muss (und daher über einen Hotkey im KEYS
Menü aufrufbar ist). Irgendwo in Ihrem Code können Sie das Git-Arbeitsverzeichnis zuweisen,
%let gwd = C:\specific\dir\to\open;
Der %sysexec
Anruf sieht dann so aus:
%sysexec(cd &gwd. && start "" "C:\Program Files\Git\bin\sh.exe" && exit);
Dies funktioniert folgendermaßen. Zuerst erweitert SAS &gwd
. Dann öffnet es eine Windows-Eingabeaufforderung. cd
Das Verzeichnis wird in das Verzeichnis geändert, in das &gwd.
es aufgelöst wurde. Git-bash wird dann im aktuellen Verzeichnis geöffnet (das in geändert wurde &gwd.
). Schließlich wird beim Schließen von Git-bash der exit
Befehl eingegeben, wodurch die Windows-Eingabeaufforderungssitzung geschlossen wird.
Leider scheint es, als würde der Anfang cd
gerade genug Verzögerung zwischen dem Aufruf und dem Öffnen von Git-Bash einführen, um störend zu sein. Ich vermute, dass die Eingabe eines cd
Befehls innerhalb von Git-Bash schneller sein könnte, aber dieser Ansatz funktioniert.
Antwort3
Sie können ein Skript wie dieses erstellen:
cd c:\path\to\particular\directory
"C:\Program Files\Git\bin\sh.exe"
Speichern Sie das entweder als „ whatever.cmd
oder“ whatever.bat
und doppelklicken Sie darauf.
Der Einfachheit halber können Sie Ihr Skript mit den folgenden Schritten zur Taskleiste hinzufügen. Ich dachte, ich füge dies hinzu, da es nicht ganz so einfach ist, wie Sie vielleicht erwarten (das Skript selbst lässt sich nicht einfach auf die Taskleiste ziehen):
- Klicken Sie mit der rechten Maustaste auf das Skript und wählen Sie „Verknüpfung erstellen“
- Klicken Sie mit der rechten Maustaste auf die Verknüpfung, die Sie erstellt haben, und wählen Sie „Eigenschaften“
- Geben Sie unter Verknüpfung, Ziel Folgendes ein:
cmd /c C:\path\to\your\script\whatever.cmd
- Notiz: Möglicherweise müssen Sie den vollständigen Pfad angeben zucmd(z. B. C:\Windows\System32\cmd.exe...)
Klicken Sie jetzt einfach auf den Befehl in Ihrer Taskleiste, um Ihr Skript mit einem Klick auszuführen.