Question:
Under Windows 7 I have a batch file for checking the status of some repos and outputting the returns to a file (with standard powershell issued git commands).
This works fine when launched from git shell, my question is how can I do this without launching git shell first?
So I want to be able to enter in a standard prompt or in a runnable batch file a command / commands which will launch a given batch file in git shell.
Answer:
If you consider what git-cmd.bat
does, all you need to do is to set the right variable %PATH%
before your git commands in your script:
If you don’t, here is what you would see:
1 2 3 4 |
C:\Users\VonC>git --version 'git' is not recognized as an internal or external command, operable program or batch file. |
I have uncompressed the latest portable version of msysgit.
Put anywhere a test.bat
script (so no powershell involved there) with the following content:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@setlocal @set git_install_root="C:\Users\VonC\prg\PortableGit-1.7.11-preview20120620" @set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%PATH% @if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH% @if not exist "%HOME%" @set HOME=%USERPROFILE% @set PLINK_PROTOCOL=ssh REM here is the specific git commands of your script git --version echo %HOME% git config --global --list |
Make sure HOME
is correctly set, because Git will look for your global git config there.
The result will give you:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
C:\Users\VonC>cd prog\git C:\Users\VonC\prog\git>s.bat C:\Users\VonC\prog\git>git --version git version 1.7.11.msysgit.0 C:\Users\VonC\prog\git>echo C:\Users\VonC C:\Users\VonC C:\Users\VonC\prog\git>git config --global --list user.name=VonC |
Note: that same script would work perfectly from a powershell session.