在 Windows 7 下,我有一个批处理文件,用于检查某些存储库的状态并将返回结果输出到文件(使用标准 powershell 发出的 git 命令)。
这在从 git shell 启动时工作正常,我的问题是我如何在不先启动 git shell 的情况下执行此操作?
所以我希望能够在标准提示符或可运行的批处理文件中输入一个/多个命令,这些命令将在 git shell 中启动给定的批处理文件。
最佳答案
如果你考虑什么 git-cmd.bat
确实如此,您需要做的就是在脚本中的 git 命令之前设置正确的变量 %PATH%
:
如果不这样做,您会看到以下内容:
C:\Users\VonC>git --version
'git' is not recognized as an internal or external command,
operable program or batch file.
我已经解压了 latest portable version of msysgit .
将具有以下内容的test.bat
脚本(因此不涉及powershell)放在任何地方:
@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
确保 HOME
设置正确,因为 Git 会在那里寻找你的全局 git 配置。
结果会给你:
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
注意:同一脚本在 powershell session 中可以完美运行。
关于git - 在 git shell 中运行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11229619/