2010-03-30 146 views
0

伙计们,我使用git工具,比如git bisect run,它需要调用一个命令来构建和测试我的项目。我的命令是,这是一个Windows程序。或者调用nant的build.cmd脚本。运行窗口命令从bash输出到标准输出?

很容易让bash调用nant构建来运行。

但最难的部分是如何让标准输出写入文件?

我甚至安装了Windows PowerShell以尝试从bash运行命令。

此外,它的工作原理,但标准输出填充说:“权限被拒绝” 我试图在构建进行时阅读它。

更新:

运行nant时,将使用整个路径。它安装并运行良好。问题是如何从bash运行时获得标准输出。

如果在窗口提示符下用行结尾处的“> build.out”运行nant,您将获得标准输出。但是同样的东西在bash下不起作用。它只是说build.out被锁定,权限被拒绝。

更新:

利用发球的建议之下也没有解决问题。在这种情况下,文件仍会在构建运行时报告“访问被拒绝”并尝试读取它。而且,T恤程序从不会向标准输出写入任何内容。

+0

erm ... bash是一个unix(esc)shell ...除非你在窗口中安装'nant',你可以运行它的命令。您还需要注册nant,以便您可以从任何地方调用它,或者移至它所在的目录,然后调用该命令。 – thecoshman 2010-03-30 10:13:03

+0

谢谢,我做了一个更新来回答你的问题。 Nant已安装,我们使用nant的完全限定路径。该问题与如何将标准输出转换为文件并在文件尾部加上-f相关。 – Wayne 2010-03-30 13:42:11

回答

0

好的,终于解决了这个问题。事实证明,nant构建脚本正在使用git功能擦除所有被忽略的文件进行清理。这是删除build.out文件可以导致这些奇怪的问题。现在,该进程将build.out文件写入父目录,以便它不会被删除,现在一切都能按预期顺利进行。

1

(如果我理解正确你的问题...)

你也许可以用“三通”命令的输出拆分到两个文件和stdout。行echo I am building something | tee build.out将在控制台上打印输出并将其保存到名为“build.out”的文件中。

tee命令通常在Cygwin中可用,而且显然在msysgit安装的Bash shell中(我刚刚测试过它)。这是good reference page了解更多详情。

+0

感谢您的回复。如上所述使用T恤有相同的问题和额外的问题。那就是如果你试图用任何编辑器或者尾巴,更少,头部,猫等来打开它,文件仍然会给出“访问被拒绝”的错误。另外,奇怪的是,T恤程序并没有向stdandard写入任何东西。它保持沉默。但是文件的大小正在增长。只是简单地仍然不可能“监视”发生了什么。 – Wayne 2011-02-06 08:10:58