gpt4 book ai didi

windows - 批处理脚本中的非标准文件描述符

转载 作者:可可西里 更新时间:2023-11-01 11:25:42 27 4
gpt4 key购买 nike

所以我有(我认为是)一个有趣的问题。

在工作中,我使用专有命令行实用程序测试/配置我们制作的以太网设备。

基本上,您打开命令提示符,在相应目录中键入 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 替换为日志文件,则错误不会显示在日志文件中。

所以我的问题是:有没有办法弄清楚为什么在我运行批处理脚本时会出现此错误?如果它不是 stderrstdout 的一部分,那么它是什么的一部分?甚至有可能知道它是什么的一部分吗?

提前致谢。

附言我知道这可能只是专有软件的一个怪癖,但我想我会问它是否与 Windows 有关系。

最佳答案

type 不是 echo

c:\> type /?
displays the contents of a text file or text files

它提示是因为 run 不是文本文件,并且(大概)可以读取 test_script.txt 因为它是。

错误来自“type”的标准错误,因此重定向 ethutil 的标准错误不会抑制它。如果你真的想要,你可以 type run 2>nul | ethutil 但由于没有 run 文件,它无法正常工作/没有按照您的预期进行,您应该修复它。

关于windows - 批处理脚本中的非标准文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38340061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com