【发布时间】:2016-11-15 08:31:59
【问题描述】:
所以我有一个(我认为是)一个有趣的问题。
在工作中,我使用专有的命令行实用程序测试/配置我们制作的以太网设备。
基本上,你打开一个命令提示符,在相应的目录中输入ethutil,然后它通过JTAG访问芯片。
在此实用程序中,您可以运行“脚本”,这些“脚本”只是填充了适当命令的文本文件。它们是这样运行的:
-->run test_script.txt
这将向脚本中的所有命令输出反馈。
我已经通过使用批处理文件将命令传送到实用程序来自动执行大量寄存器写入/读取,如下所示:
type run test_script.txt | ethutil >nul
nul 只是为了抑制我的批量读出中的所有输出。这很好用,但我总是收到一个错误,说找不到文件:
The system cannot find the file specified.
Error occurred while processing: run.
test_script.txt
在继续之前,应该注意的是,如果我只是从实用程序本身运行脚本(即没有批处理脚本),则不会发生此错误。
现在我尝试像这样隐藏错误:
type run test_script.txt | ethutil >nul 2>&1
但错误仍然出现,所以它显然不是stderr 的一部分。
另外,如果我用日志文件替换 nul,错误不会显示在日志文件中。
所以我的问题是:有没有办法弄清楚为什么在我运行批处理脚本时会出现这个错误?如果它不是stderr 或stdout 的一部分,它是什么的一部分?甚至有可能知道它是什么的一部分吗?
提前致谢。
附:我知道这可能只是专有软件的一个怪癖,但我想我会问它是否与 Windows 有关。
【问题讨论】:
标签: windows batch-file stdout stderr