在Windows中使用管道符号和“打印”

时间:2013-04-02 14:56:17

标签: shell dos pipe

我正在尝试让shell脚本在Windows中运行。对不起,但我对Windows不是很有经验(说实话,甚至在shell中也是如此)。除了这一行之外,该脚本运行良好:

print "9\n0\n1\n5\n0\n0\n\n" | /usr/ts23/mm_util

mm_util是一个以数字作为输入的交互式实用程序。它首先选择9,然后选择0,然后选择1等。我已经改变了使用该实用程序的路径,该实用程序在Windows中具有相同的界面,但输出只是第一个屏幕。未输入“9”输入,因此输出(已解析)不正确。如何更改此设置以便在第一个屏幕上输入“9”?

3 个答案:

答案 0 :(得分:1)

尝试将九行内容放入文本文件中,然后执行print textfile.txt | /usr/ts23/mm_util

请记住,Windows使用行前CR LF的UNIX之前约定,而不仅仅是LF

答案 1 :(得分:1)

我得到输出的方式是使用这个:

  

C:\ Users \ ts23 \ mm_util<的test.txt

然后将以下内容放在test.txt

9
0
1
5
0
0

我得到的输出是我所需要的,希望这将有助于某些人在将来尝试做这样的事情。

答案 2 :(得分:1)

这是一个不需要文件的方法。它适用于命令行:

(for %N in (9 0 1 5 0 0 "") do @echo(%~N)|c:\Users\ts23\mm_util

""是在输出中得到一个空行,就像在原始问题中一样。你的答案没有空白行。

%~N符号用于封闭值的引号。

echo(是非直观的语法,可以可靠地打印空行,以防%~N扩展为空。

如果将代码放在批处理脚本中,请不要忘记将百分比加倍。