为什么.exe文件在IAR中从批处理文件调用时不生成输出?

时间:2017-11-15 10:00:31

标签: batch-file iar

我偶然发现了一个奇怪的问题,即在Windows 10中的IAR Embedded Workbench 8.0的预构建或后构建操作中通过批处理文件调用时,命令行可执行文件(不是内置函数!)不会生成任何输出。

我做了一个简单的测试,其中IAR Pre-Build操作配置为运行pre_build.bat

Build Actions Configuration

批处理文件只包含以下行:

git status > c:\some_specific_directory\status.txt 2>&1

从PowerShell或cmd调用时,结果符合预期:git status的输出存储在status.txt中。如果直接从IAR调用git(不调用批处理文件),git也会按预期工作。如果通过IAR预构建操作调用批处理文件,则status.txt为空。

此问题似乎会影响任何.exe文件的工具。到目前为止,我已经注意到wheregitpython的这种行为。

似乎这些命令在新的shell中打开(批处理文件中的命令越多,批处理窗口似乎会快速弹出并立即再次关闭)。

使用的版本:

  • Windows 10 1703
  • IAR Embedded Workbench for ARM 8.20.1.14188
  • git 2.13.2.windows.1

1 个答案:

答案 0 :(得分:0)

来自:IAR Tech Note Build Actions,您想要:
CMD / C" CMD / C" git status> c:\ some_specific_directory \ status.txt 2>& 1""