我试图从一个批处理文件启动一个exe (jtag控制台),并将文件中的数据提供给它。这可以很好地与以下各项配合使用:
nios2-terminal.exe < test.txt
但此文件中有空字符(0x00)。空字符后的字符不会传递给exe,只会传递更多的零,这可能是因为以空结尾的字符串。
因此,我将文件拆分成4个文件,其中最后一个字符是空的,然后一个接一个地输入它们。问题是我必须杀死进程,因为它们不会自己去做。我需要使用start命令。
但我不知道如何将文件提供给可执行文件,而不是提供给启动命令。这可能是第一个:
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的某种替代方案,它不介意空字符输入。
我希望我没有错过任何关于这个问题的威胁,但我没有发现任何威胁。
非常感谢
编辑:
标题显示stdin和stdout重定向,因为我还想将程序的输出重定向到一个文件。但我认为,一旦我掌握了如何使用start命令重定向输入,我也可以处理这件事。
发布于 2018-03-07 06:27:04
试试这个:
nios2-terminal.exe > test.txt
如果你想追加,使用这个cmd:
test.txt -Terminal.exe >> nios2
https://stackoverflow.com/questions/49100335
复制