【问题标题】:batch redirect stdin and stdout using start command使用 start 命令批量重定向标准输入和标准输出
【发布时间】:2018-08-12 12:15:16
【问题描述】:

我尝试从批处理文件启动 exe(jtag 控制台)并将文件中的数据提供给它。这适用于:

nios2-terminal.exe < test.txt

但此文件中有空字符 (0x00)。空字符后的字符没有传递给 exe,只是更多的零,可能是因为空字符终止的字符串。

所以我将文件拆分为 4 个文件,其中只有最后一个字符为空,然后一个接一个地提供给它们。问题是我必须杀死这些进程,因为它们自己不会这样做。我需要使用启动命令。

但我不知道如何将文件提供给启动命令而不是 exe。这可能是第一个:

start /d %path% nios2-terminal.exe < test0.txt
ping 1.1.1.1 -n 1 -w 1 > nul REM// 1ms delay, tried more, too
taskkill /f /im nios2-terminal.exe
start /d %path% nios2-terminal.exe < test1.txt ...

由于 nios2-terminal.exe 将 stdIn 中的所有字符放入我的 FPGA 的 jtag 中,我想使用 start /b /d %path% nios2-terminal.exe,然后使用 type testx.txt 读取所有文件。

当我手动执行此操作时,我必须先按 Return,然后将我输入的第一个字符放在 jtag 上。在脚本中,我无法正常工作。

是否有任何其他可能性,例如将输入发送到正在运行的 nios2-terminal.exe 实例或 JTAG 终端 nios2-terminal.exe 的替代方案,它不介意 NULL 字符输入。

我希望我没有错过任何已经涵盖此问题的威胁,但我没有发现任何威胁。

非常感谢

编辑:

标题说 stdin 和 stdout 重定向,因为我还想将程序的输出重定向到文件。但我想一旦我知道如何使用 start 命令重定向输入,我也可以处理这个问题。

【问题讨论】:

  • 您是否尝试过转义重定向字符? start /d %path% nios2-terminal.exe ^&lt; test0.txt
  • 或者,使用两个批处理文件:nios2-terminal.exe &lt; %1,它将从第二个批处理文件执行:start first.bat test0.txtstart first.bat test1.txt
  • @lit:是的,我试过了,但没用。我不知道为什么@Jos:谢谢,它奏效了!还有一个问题是ping 1.1.1.1 -n 1 -w 1 的延迟,我是否需要进行-n 2 迭代,否则它不会等待它完成并立即终止进程。

标签: redirect cmd stdin jtag nios


【解决方案1】:

试试这个:

nios2-terminal.exe > test.txt

如果你想追加使用这个 cmd:

nios2-terminal.exe >> test.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多