正在抑制msbuild中Exec任务的输出

正在抑制msbuild中Exec任务的输出,msbuild,Msbuild,我正在使用msbuild“Exec”任务运行命令。但是,我不希望从命令生成的stdio输出出现在控制台中,是否仍有抑制它的方法 也许使用Exec任务调用“cmd.exe”和我的命令exe是一个目标,然后使用“>”将输出重定向到其他地方。(但是,我无法使此解决方案起作用) i、 e 有什么建议可以让我的例子发挥作用或替代方案吗?试试这个: <Exec Command="cmd.exe sqlplus.exe $(someCommandSpecificSettings) &lt;

我正在使用msbuild“Exec”任务运行命令。但是,我不希望从命令生成的stdio输出出现在控制台中,是否仍有抑制它的方法

也许使用Exec任务调用“cmd.exe”和我的命令exe是一个目标,然后使用“>”将输出重定向到其他地方。(但是,我无法使此解决方案起作用)

i、 e


有什么建议可以让我的例子发挥作用或替代方案吗?

试试这个:

<Exec Command="cmd.exe sqlplus.exe  $(someCommandSpecificSettings) &lt; test.txt >nul"/>

好的,算出了。。。cmd.exe需要a/c参数才能满足我的要求,即:

此外,它应该是
,而不是

<Exec Command="cmd.exe /c sqlplus.exe  $(someCommandSpecificSettings) &gt; test.txt"/>

仅供参考:

  • )将输出重定向到之后指定的文件(如果需要,将覆盖)

  • 将输出附加到之后指定的文件(不覆盖)

  • <将标准输入重定向到您的命令(基本上是将文件内容传递到您的命令)
使用代码,每次创建(一次)并替换test.txt文件。不使用文件名,您可以使用NUL,这意味着无处重定向。这不会创建文件(在某些情况下可能会很大):

会将一切重定向到任何地方


希望这能澄清您的想法^^

抑制任务或任何继承任务的标准输出和标准错误输出的最佳方法是降低输出的重要性。这样,如果您正在调试构建,这些输出将不会完全隐藏,因为您正在将它们重定向到nul

<Exec Command="sqlplus.exe" StandardOutputImportance="low" StandardErrorImportance="low"/>


不,不起作用。。我仍然收到一条“系统找不到指定的文件”消息。该消息告诉您无法找到“test.txt”作为输入读取,因为您的
<
错误。警告:重定向到
NUL
仅在Windows上有效,在Linux上无效。
<Exec Command="cmd.exe /c sqlplus.exe  $(someCommandSpecificSettings) &gt; NUL"/>
<Exec Command="cmd.exe /c sqlplus.exe  $(someCommandSpecificSettings) &gt; NUL 2&gt;errors.txt"/>
> NUL 2>&1
<Exec Command="sqlplus.exe" StandardOutputImportance="low" StandardErrorImportance="low"/>