如何编写一个批处理文件来打开 GitBash shell 并在 shell 中运行命令?
我在 Windows 7 上尝试使用批处理文件打开 GitBash shell 并进行 git 调用。 这是我的批处理文件的内容:
REM Open GitBash
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
REM retrieve archive
git archive master | tar -x -C %~1
REM quit GitBash
exit
我注意到 GitBash 在下一个命令“git archive...”之前注销。有谁知道我是否可以将命令传递到 GitBash 以及如何传递?
麦克风
I'm on Windows 7 trying to use a batch file to open the GitBash shell and make a git call.
This is the contents of my batch file:
REM Open GitBash
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
REM retrieve archive
git archive master | tar -x -C %~1
REM quit GitBash
exit
I noticed that the GitBash is logging out before the next command "git archive...". Does anybody know if I can pass the command into GitBash and how?
Mike
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您还可以运行 shell 脚本来运行多个命令,
然后从 cmd 行调用该命令:
You can also run a shell script to run multiple commands
then call that from your cmd line:
在 Windows 中,我创建了一个 git.bat 文件,并将其与 .hook 扩展名相关联。
之后,您可以像每个 .bat 或 .cmd 文件一样运行 .hook 文件,只不过它们在 git shell 下运行...
In windows I created a git.bat file, and associated it to the .hook extension.
After that you can run the .hook files like every .bat or .cmd file except that they are running under git shell...
经过多次试验,我终于成功了。使用当前版本的 Git For Windows Portable。打开 Windows 命令窗口,并执行此脚本。如果您的工作目录发生更改,它将在您的工作目录中打开一个 bash 终端,并显示当前的 git 状态。它通过调用 exec bash 使 bash 窗口保持打开状态。
如果您有多个项目,您可以使用不同的项目文件夹创建此脚本的副本,并从主批处理脚本中调用它。
更新 - 检查新添加的文件,即未跟踪的文件。
=============
After a lot of trials , I got this one working. With current version of Git For Windows Portable. Open a Windows command window, and execute this script. If there is a change in your working directory, it will open a bash terminal in your working directory, and display the current git status. It keeps the bash window open, by calling
exec bash
.If you have multiple projects you may create copies of this script with different project folder, and call it from a main batch script.
Update - check new added files , that is untracked files.
=============
使用 Bash 更加友好,例如
你可以运行脚本:
Use Bash is more friendly, for example
You can run the script:
就我而言,某个 HTTP 请求可以在 Windows 上的 Git Bash 中的 curl 中工作。但是,当使用 HttpClient 和 HttpGet (org.apache.http.client.methods.HttpGet) 在 Java 上运行时,我会收到连接重置错误。
如果我尝试使用 exec 直接运行命令,由于某种原因它无法工作。
作为解决方法,此代码会将命令写入批处理文件中,然后运行该批处理文件并将输出放置在 command.txt 中。
这是需要在 command.bat 文件中的命令(我已经更改了端点和密码):
这是代码(注意该命令有特殊字符转义):
In my case, a certain HTTP Request would work in curl within Git Bash on Windows. However, I would get a Connection Reset error when running on Java using HttpClient and HttpGet (org.apache.http.client.methods.HttpGet).
If I tried to use exec to directly run the command, for some reason it would not work.
As a workaround, this code will write the command in a batch file, then run the batch file and place the output in command.txt.
Here is the command which needs to be in the command.bat file (I have changed the endpoint and password):
Here is the code (notice the command has special characters escaped):