git - 在 git shell 中运行批处理文件

标签 git powershell windows-7 batch-file

在 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/

相关文章:

git reset --soft - 它返回到 git checkout 点还是最后一个 git merge 点?

powershell - 试图理解这段代码(创建一个 [char] 范围)

c++ - 从命令提示符使用 MSBuild 编译 C++ 代码时出错

git - 如何使用Docker在Heroku Review App中的PATH上获取GIT?

git - 如何git rm一个名称以 ':'开头的文件

git - 从 Git bash 调用 Notepad++

windows - 从 Windows Powershell 脚本上传到 Artifactory

Powershell 将文件作为邮件附件发送

mysql - WAMP 的 MySQL "lib"和 "include"目录在哪里?

c++ - 异步WinBioVerify与WinBioVerifyWithCallback