Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个bat文件,该文件将运行git,然后运行脚本_Git_Batch File - Fatal编程技术网

创建一个bat文件,该文件将运行git,然后运行脚本

创建一个bat文件,该文件将运行git,然后运行脚本,git,batch-file,Git,Batch File,我正在尝试编写一个批处理文件,当我运行它时,它将在本地克隆一个存储库 要打开git,我有以下命令: C:\Windows\System32\cmd.exe /c "%LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe" --login -i 然而,无论我在这之后输入什么命令,它都不会运行。我在某个地方读到过,这是因为当你调用一个新的shell时,它永远不会返回到旧的shell,不知道这有多正确,但是有没有一种方法可以让我在git提示符

我正在尝试编写一个批处理文件,当我运行它时,它将在本地克隆一个存储库

要打开git,我有以下命令:

C:\Windows\System32\cmd.exe /c "%LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe" --login -i
然而,无论我在这之后输入什么命令,它都不会运行。我在某个地方读到过,这是因为当你调用一个新的shell时,它永远不会返回到旧的shell,不知道这有多正确,但是有没有一种方法可以让我在git提示符窗口打开后自动运行git命令

编辑:

所以如果我运行这个bat文件,它不会回显我的文本,为什么?为什么在我打开git后它会忽略所有命令

"%LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe" --login -i

ECHO THIS IS A TEST
更新:


当我运行上面的脚本时,它会打开一个gitshell,如果我键入exit,echo命令将运行。直到我关闭git shell,批处理脚本的其余部分才开始运行。如何告诉批处理脚本在git shell中执行命令?

如果启动交互式shell(使用
-I
选项),它将在退出shell之前不会返回。要让命令作为shell启动的一部分运行,请将它们添加到
/etc/profile
脚本中。当您处理Git for Windows shell时,它将位于Git安装文件夹中。您还可以创建一个仅用于您的用户帐户的
$HOME/.profile
文件。有关启动交互式会话时bash读取的文件的更多详细信息,请参阅bash手册。

这是正确的,但不适用于此处。此外,它应该可以很好地运行命令,尽管您不需要新的shell,因此您可以只执行行
%LOCALAPPDATA%\Atlassian\SourceTree\git\u local\bin\sh.exe”-login-i
。你确定它不会执行任何操作吗?这似乎很奇怪。您可以从CMD启动脚本,或者在脚本末尾添加一行
pause
,这样您就可以阅读它的输出了吗?@GolezTrol我刚刚编辑了问题,并向您展示了我的脚本。当我运行一个cmd窗口打开,启动git,它等待我的输入时,会发生什么情况,“这是一个测试”没有显示在任何地方,是的。启动gitshell,这是一个命令行工具。控件不会返回到批处理文件,直到git shell终止。你到底希望它做什么?我想要一种方法来告诉新的shell运行命令。