Running a batch file in git shell

后端 未结 2 2068
猫巷女王i
猫巷女王i 2020-12-19 08:43

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 w

相关标签:
2条回答
  • 2020-12-19 09:29

    It looks like your git executable is just not accessible for command line use.

    Just add c:\Users\[your_login]\AppData\Local\GitHub\PortableGit_[hash]\bin (or c:\Users\[your_login]\AppData\Local\GitHub\PortableGit_[hash]\cmd) to your Path variable. Replacing [your_login] and [hash] with actual data.

    But I believe the location of files will change from version to version, so if you're heavy git user, consider installing msysGit. It will add its executable to the system path automatically (corresponding option available during setup).

    Even more, there is the project called mysysGit-UTF8 claiming that they have full UTF-8 support on Windows. I didn't notice the difference, through.

    0 讨论(0)
  • 2020-12-19 09:36

    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:

    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:

    @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:

    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.

    0 讨论(0)
提交回复
热议问题