如何通过管道将bash脚本输出到windows上的文件

如何通过管道将bash脚本输出到windows上的文件,windows,git,bash,windows-scripting,Windows,Git,Bash,Windows Scripting,我在Windows7上运行 我有一个bash脚本,它可以在Windows命令提示符下运行,使用“C:\Program Files\Git\Git cmd.exe”“C:\path\myBashScript.sh”17.1。我可以看到它在一个新的bash窗口中运行,输出看起来很好,它关闭了。我要做的是将输出捕获到一个文件中,以便进一步处理 我试过了 “C:\ProgramFiles\Git\Git cmd.exe”“C:\path\myBashScript.sh”17.1>C:\out\myBas

我在Windows7上运行

我有一个bash脚本,它可以在Windows命令提示符下运行,使用
“C:\Program Files\Git\Git cmd.exe”“C:\path\myBashScript.sh”17.1
。我可以看到它在一个新的bash窗口中运行,输出看起来很好,它关闭了。我要做的是将输出捕获到一个文件中,以便进一步处理

我试过了

“C:\ProgramFiles\Git\Git cmd.exe”“C:\path\myBashScript.sh”17.1>C:\out\myBashScript.out.txt

但我在输出中得到的只是工作文件夹,
C:\path>

这可能吗


谢谢

您需要区分shell脚本中生成的输出和命令行执行生成的输出

要轻松捕获shell脚本的输出,您可能会发现在脚本中对捕获文件执行重定向>更容易

您没有说明您使用的是什么类型的系统,以及它是如何设置的(Cygwin、GfW;cmd.exe或bash中的命令行;集成或分离的git命令(cmd.exe中)等等)。我怀疑无法执行命令行的简单重定向是因为系统设置问题。

“C:\Program Files\Git\Git cmd.exe”是前端windows启动器。我很惊讶这需要任何争论。您应该使用bash解释器运行bash脚本:

"C:\Program Files\Git\bin\bash.exe" "C:\path\myBashScript.sh"

PS:我建议在bash脚本中应用重定向,而不是在windows命令行中应用重定向,它们在那里可以更好地控制。

可能是STDERR输出?请尝试
“C:\Program Files\Git\Git cmd.exe”“C:\path\myBashScript.sh”17.1>C:\out\myBashScript.out.txt 2>&1
@Ben。这与我使用git-cmd.exe没有任何区别,git-cmd.exe是作为GitForWindows的一部分安装的。我在Windows Cmd提示符下运行它,尽管这是TeamCity命令行运行程序的测试平台,因为这将构成构建过程的一部分。虽然我认为这是因为TeamCity使用主机的命令行环境,但我在两种环境中都得到了相同的结果。读完这篇文章,你有什么建议吗?@Badgerspot我的建议是将重定向移到引用的bash命令中。e、 g.(完全未经测试;-)
“C:\ProgramFiles\Git\Git cmd.exe”“C:\path\myBashScript.sh 17.1>C:\out\myBashScript.out.txt”