2013-06-25 13 views
53

Ho quello che spero sia una domanda semplice, ma non ho ancora trovato la risposta. Vorrei avviare Git Bash da un file batch DOS. Ecco quello che ho provato finora:Come avviare Git Bash dalla riga di comando DOS?

1) Lanciato Git Bash da Win 7 pulsante Start 2) usato per identificare il processo come "sh.exe" 3) sh.exe Lanciato da file batch utilizzando il comando

iniziare
start sh.exe 

Tuttavia, questo non avvia l'intero ambiente Git Bash. Git Bash di solito ha "MINGW32" nella barra del titolo, ma sh.exe ha un percorso completo per ... Git \ bin \ sh.exe. Mi sembra che ci siano delle sovrapposizioni o dipendenze di cui non sono a conoscenza, che devono anche essere caricate (importate? Importate?).

Questo è stato uno dei migliori risultati che ho trovato attraverso Googling, ma non ha senso completo a me e non sono sicuro se si applica esattamente alla mia situazione:

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

I Ho circa 7 anni nel mondo dello script batch DOS, quindi sii gentile.

Qualsiasi aiuto è apprezzato. Grazie in anticipo.

risposta

67

Se si desidera avviare da un file batch:

  • per x86

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

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

Grazie a @Endoro! Anche se la risposta di @Klas Mellbourn era corretta per Powershell, la tua è più corretta dato che sto correndo dal file batch DOS. L'aggiunta della direttiva "start" causa l'esecuzione asincrona del programma, che è esattamente ciò di cui ho bisogno! Pollice su! –

+10

C'è un modo per digitare ed eseguire un comando nella finestra del batch di Git dopo che è stato aperto dal file batch? – Nick

+1

@OviC Sei sicuro che la tua modifica sia corretta? "Program Files (x86)" esiste solo in architettura x64 per programmi a 32 bit. – Drunix

27

io non so esattamente che cosa si intende per "pieno ambiente Git Bash", ma ho la bella pronta se faccio

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

In PowerShell

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

The --login switch rende il guscio eseguire la shell di login startup files.

+0

Grazie @Klas Mellbourn. La tua risposta è positiva per Powershell, ma senza l'aggiunta della direttiva "start" come nella risposta di Endoro, si interrompe l'esecuzione del prossimo programma fino all'uscita dalla shell, che non è il comportamento desiderato, altrimenti ti avrei votato. –

+0

Uso Console2 nella finestra 'cmd' e questo causa strani comportamenti. Lo metto in un file .bat e ora tutto va bene: '@"% SYSTEMDRIVE% \ Programmi \ Git \ bin \ bash.exe "--login' – Grault

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

Git bash si aprirà.

1

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

ho postato una risposta qui.

Apre una finestra di comando di Windows ed esegue questo script. Se c'è una modifica nella directory di lavoro, si aprirà un terminale bash nella directory di lavoro e verrà visualizzato lo stato di git corrente. Mantiene aperta la finestra bash, chiamando exec bash.

Se si dispone di più progetti, è possibile creare copie di questo script con una cartella di progetto diversa e chiamarla da uno script batch principale.

14

Preferisco utilizzare git-bash.exe anziché sh.exe.

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

È possibile interrompere la chiusura della finestra quando la chiamata /usr/bin/bash --login -i alla fine;

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

Nota: Non sono sicuro che questo è un buon modo :)

+2

Bella risposta, ma la finestra di git-bash si chiude immediatamente. Sai come disabilitare la chiusura automatica dopo che il comando termina l'esecuzione? – Mark

+0

@ Mark Grazie Mark. Ho aggiunto un esempio alla mia risposta sopra. Purtroppo non sono sicuro di come dovremmo farlo nel modo giusto perché non sono una persona Windows :) – kujiy

+0

[code] start "" "% ProgramFiles% \ Git \ git-bash.exe" [/ code ] funziona alla grande! – PauAI

0

La risposta da Endoro è invecchiato e sono in grado di commentare;

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

start "" "%ProgramFiles%\Git\bin\sh.exe" --login 
Problemi correlati