【问题标题】:Running a batch file in git shell在 git shell 中运行批处理文件
【发布时间】:2023-03-23 16:26:01
【问题描述】:

在 Windows 7 下,我有一个批处理文件,用于检查某些 repos 的状态并将返回结果输出到文件(使用标准 powershell 发出的 git 命令)。

从 git shell 启动时效果很好,我的问题是如何在不先启动 git shell 的情况下做到这一点?

所以我希望能够在标准提示符或可运行的批处理文件中输入一个命令/命令,它将在 git shell 中启动给定的批处理文件。

【问题讨论】:

  • 一个问题:你有什么版本的 git for windows?我正在努力为 win (7) 安装 msys Git,但有些命令需要很长时间才能完成......现在只能通过 cygwin 获得 git。
  • 我有 1.7.11.rc1.6953.gf229a20 - 与新的 GitHub windows 应用程序一起安装
  • 你能从 Powershell 执行简单的 git 命令吗?换句话说,是否需要 git shell 才能对 git 进行任何操作?如果您可以从 Powershell 访问 git,那么您可以将批处理文件重写为 powershell 脚本。或者,您应该能够从 Powershell 运行批处理文件,除非它设置了环境变量(如果是这样,请在 Google 上搜索“Invoke-CmdScript”)。
  • 我无法从 Powershell 执行 git 命令,并且我不想在运行批处理文件之前打开 powershell。目标是能够通过单个操作在 git shell 中发出一组 git 命令
  • 所以你想在不使用任何 shell 的情况下运行一组 git 命令。如果这就是你想要的,那么抱歉这是不可能的。请更具体地回答您的问题。我无法理解您的问题。

标签: git powershell windows-7 batch-file


【解决方案1】:

如果您考虑 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 会话中完美运行。

【讨论】:

  • 感谢@VonC,这看起来很有希望,将在星期三进行测试。
【解决方案2】:

您的 git 可执行文件似乎无法在命令行使用。

只需将c:\Users\[your_login]\AppData\Local\GitHub\PortableGit_[hash]\bin(或c:\Users\[your_login]\AppData\Local\GitHub\PortableGit_[hash]\cmd)添加到您的路径变量中。将[your_login][hash] 替换为实际数据。

但我相信文件的位置会因版本而异,所以如果你是重度 git 用户,请考虑安装msysGit。它会自动将其可执行文件添加到系统路径中(相应的选项在安装过程中可用)。

更重要的是,有一个名为 mysysGit-UTF8 的项目声称他们在 Windows 上完全支持 UTF-8。我没有注意到差异,通过。

【讨论】:

  • 如果不选择添加到syspath的选项就不会添加
猜你喜欢
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 2014-05-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 2018-09-08
相关资源
最近更新 更多