2013-04-02 67 views
1

我想在Windows中使shell腳本工作。對不起,但我對Windows並不是很有經驗(或者說老實說,在shell中還是那麼多)。該腳本運行良好,除了這一行:在Windows中使用管道符號和「打印」

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

mm_util是一個互動的工具,採用數字作爲輸入。它首先選擇選擇9,然後是0,然後是1等。我已經改變了使用實用程序的路徑,該實用程序在Windows中具有相同的界面,但輸出只是第一個屏幕。 「9」輸入未輸入,因此輸出(即已解析)不正確。我怎樣才能改變這個,以便在第一個屏幕上輸入「9」?

回答

1

這是一個不需要文件的方法。它的工作原理在命令行上:

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

""是讓輸出一個空行,因爲你在你原來的問題了。你的答案沒有空白。

%~N符號條從該值中括起引號。

echo(是非直觀的語法,可以可靠地打印空行,以防%~N擴展爲空。

如果將代碼放在批處理腳本中,請不要忘記將百分比加倍。

+0

哇,這真的很酷,謝謝 –

1

設法把那九斷行 - 零的東西,在一個文本文件,然後執行print textfile.txt | /usr/ts23/mm_util

而且要記住,Windows使用預UNIX約定斷行是CR LF,不只是LF

+0

我已經試過在test.txt文件中輸入'9 \ r \ n'' 9 \ n'和'9'並嘗試你的命令,但不幸的是,它仍然不能工作,和以前一樣。只顯示第一個屏幕。 –

1

我得到的輸出我想要的是用這種方式:

C:\用戶\ TS23 \ mm_util < test.txt的

然後就是把裏面的測試以下。 txt

9 
0 
1 
5 
0 
0 

我得到的輸出是我所需要的,希望這可以幫助有人在未來嘗試做這樣的事情。