2013-06-25 11 views
53

Mam to, na co mam nadzieję, to proste pytanie, ale nie udało mi się jeszcze znaleźć odpowiedzi. Chciałbym uruchomić Git Bash z pliku wsadowego DOS. Oto, co starałem dotąd:Jak uruchomić Git Bash z wiersza poleceń DOS?

1) Rozpoczęty Git Bash z Win 7 przycisku Start 2) Używane do identyfikacji procesu jako „sh.exe” 3) rozpoczęła sh.exe z pliku wsadowego przy użyciu polecenia

zacząć
start sh.exe 

To jednak nie uruchamia pełnego środowiska Git Bash. Git Bash zwykle ma "MINGW32" na pasku tytułu, ale sh.exe ma pełną ścieżkę do ... Git \ bin \ sh.exe. Wydaje mi się, że istnieją pewne nakładki lub zależności, których nie jestem świadomy, które również muszą zostać wczytane (zaimportowane? Zaimportowane?).

Był to jeden z najlepszych wyników poprzez Googling znalazłem, ale to nie ma kompletnego sensu dla mnie i nie jestem pewien, czy to odnosi się dokładnie do mojej sytuacji:

Running git from Windows Cmd line: Where are key files?

I ma około 7 lat w świecie skryptów wsadowych DOS, więc bądź delikatny.

Każda pomoc jest doceniana. Z góry dziękuję.

Odpowiedz

67

Jeśli chcesz uruchomić z pliku wsadowego:

  • dla x86

    start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 
    
  • dla x64

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login 
    
+0

Dzięki @Endoro! Chociaż odpowiedź @Klas Mellbourn była poprawna dla Powershell, twoja jest bardziej poprawna, ponieważ korzystam z pliku wsadowego DOS. Dodanie dyrektywy "start" powoduje, że program jest uruchamiany asynchronicznie, co jest dokładnie tym, czego potrzebuję! Kciuki w górę! –

+10

Czy istnieje sposób pisania i wykonywania polecenia w oknie wsadowym Git po jego otwarciu z pliku wsadowego? – Nick

+1

@OviC Czy jesteś pewien, że twoja edycja jest prawidłowa? "Program Files (x86)" istnieje tylko w architekturze x64 dla programów 32-bitowych. – Drunix

27

Nie jestem pewien co masz na myśli przez „pełnego środowiska Git Bash”, ale pojawia się piękny wiersz, jeśli robię

"C:\Program Files\Git\bin\sh.exe" --login 

W PowerShell

& 'C:\Program Files\Git\bin\sh.exe' --login 

The --login switch sprawia, że ​​powłoka wykonaj powłokę logowania startup files.

+0

Dzięki @Klas Mellbourn. Twoja odpowiedź jest dobra dla Powershell, ale bez dodania dyrektywy "start", jak w odpowiedzi Endoro, zatrzymuje wykonanie następnego programu, dopóki nie zostanie wyrzucona powłoka, co nie jest pożądanym zachowaniem, inaczej bym wybrał ciebie. –

+0

Używam Console2 do okna 'cmd', co powoduje dziwne zachowanie. Umieszczam to w pliku .bat i teraz wszystko jest dobrze: '@"% SYSTEMDRIVE% \ Program Files \ Git \ bin \ bash.exe "--login' – Grault

3
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i 

Git bash zostanie otwarty.

1

https://stackoverflow.com/a/33368029/15789

Pisałem tutaj odpowiedź.

Otwórz okno poleceń systemu Windows i uruchom ten skrypt. Jeśli nastąpi zmiana w twoim katalogu roboczym, otworzy on terminal bash w twoim katalogu roboczym i wyświetli aktualny status git. Utrzymuje otwarte okno bash, wywołując bash exec.

Jeśli masz wiele projektów, możesz utworzyć kopie tego skryptu z innym folderem projektu i wywołać go z głównego skryptu wsadowego.

14

Wolę używać git-bash.exe zamiast sh.exe.

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini" 

można przerwać zamykając okno, gdy wezwanie /usr/bin/bash --login -i w końcu;

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i" 

Uwaga: Nie jestem pewien, że to dobry sposób :)

+2

Dobra odpowiedź, ale okno git-bash zamyka się natychmiast. Czy wiesz, jak wyłączyć automatyczne zamykanie po zakończeniu wykonywania polecenia? – Mark

+0

@ Mark Mark Dzięki. Dodałem przykład do powyższej odpowiedzi. Niestety nie jestem pewien, jak to zrobić we właściwy sposób, ponieważ nie jestem osobą z systemem Windows :) – kujiy

+0

[kod] start "" "% ProgramFiles% \ Git \ git-bash.exe" [/ code ] działa świetnie! – PauAI

0

Odpowiedź przez Endoro ma wieku i jestem w stanie wypowiedzieć;

# if you want to launch from a batch file or the command line: 

start "" "%ProgramFiles%\Git\bin\sh.exe" --login 
Powiązane problemy