当创建如下所示的批处理文件commit.bat并从命令提示符处执行它时,将执行第三行“ git-bash.exe”,并且git-bash将启动。但是,第4行或更高版本的“ cd c:/ home / sol-server / system / Upfiles / work”未在git-bash上执行,这给我带来了麻烦。
@echo off
cd C:\Program Files\Git
git-bash.exe
cd c:/home/sol-server/system/Upfiles/work
git add .
git commit -a -m "commit from bat"
由commit.bat启动git-bash之后,目标是在git-bash上从第4行执行命令。哪一部分错了...
---------------------------------------------------------------------------------
这是因为git-bash是命令解释器,但是执行命令解释器时,它会重复从标准输入中逐一输入命令并执行它们。
如果使用-c执行单个命令
git-bash -c'回声你好'
但是,由于窗口(mintty)在执行时显示了片刻,所以我认为它不好用。
如果您确实要从命令提示符启动git-bash,请为git-bash准备一个单独的脚本
git-bash commit.sh
好像很好 例如,如果将commit.sh放在c:\ mytools \ commit.sh中
提交
@echo off
cd C:\Program Files\Git
git-bash c:\mytools\commit.sh
c:\ mytools \ commit.sh
#!/usr/bin/bash
cd /c/home/sol-server/system/Upfiles/work
git add .
git commit -a -m "commit from bat"
echo 'hit enter key to terminate' ; read
在最后一行中回显和读取的原因是,如果不包括它们,则git commit执行完成后,tty commit屏幕将立即关闭,并且您将无法看到结果。
我想您想从命令提示符处开始,但是为了方便起见,每次执行脚本时都会显示薄荷窗口,因此从一开始就对git-bash进行操作更方便我觉得很好。在这种情况下,
./commit.sh
可以通过删除上述commit.sh的最后一行,然后在git-bash上执行它。