1

Windowsでシェルスクリプトを機能させようとしています。申し訳ありませんが、私は Windows の経験があまりありません (または、正直なところ、シェルの経験はそれほど多くありません)。このスクリプトは、次の 1 行を除いて正常に機能します。

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

私が望む出力を得る方法は、これを使用することでした:

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

コードをバッチ スクリプトに入れる場合は、パーセントを 2 倍にすることを忘れないでください。

于 2013-04-02T17:43:12.877 に答える
1

その9つの改行ゼロのものをテキストファイルに入れてから実行してみてくださいprint textfile.txt | /usr/ts23/mm_util

また、Windows では、改行がCR LFだけでなく であるという UNIX 以前の規則を使用していることに注意してLFください。

于 2013-04-02T15:04:40.377 に答える