1

我正在尝试使 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”?

4

3 回答 3

1

尝试将那九个换行符零的东西放在一个文本文件中,然后执行print textfile.txt | /usr/ts23/mm_util

请记住,Windows 使用换行符的 pre-UNIX 约定CR LF,而不仅仅是LF.

于 2013-04-02T15:04:40.377 回答
1

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

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

然后只需将以下内容放入 test.txt

9
0
1
5
0
0

我得到的输出是我需要的,希望这将有助于将来尝试做类似事情的人。

于 2013-04-02T15:32:15.780 回答
1

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

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

""就像您在原始问题中所做的那样,在输出中获得一个空行。您的答案没有空行。

%~N符号从值中去除了引号。

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

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

于 2013-04-02T17:43:12.877 回答