2012-01-20 241 views
0

我在Windows上使用下面的bat腳本。我的批處理腳本的第一行執行一個jar,它通過在shell中打印菜單提示符開始。我希望腳本的後續行在jar中執行時用作輸入(例如,選擇第一個菜單選項,然後輸入用戶名,然後輸入用戶姓)。在Windows上從批處理腳本執行多個命令

我試圖在Windows 呼叫開始命令,但既沒有使用正確的選項,或者是做錯了什麼,因爲我一直都結束了收到「不被識別爲一個內部或外部命令,可操作的程序或批處理文件「腳本中每個後續行的錯誤。

test.bat的
的java -classpath%LIBRARY_PATH%sample.Test
FName參數
LName的

回答

1

你需要把你的輸入,在一個單獨的文件,比你的程序重定向到從文件中讀取輸入,如下所示:

test.bat

[command] < [file]

[command]將是您啓動java程序的命令,[file]將是包含其餘輸入的文件的完整路徑。

+0

我似乎對這兩種解決方案都有問題,每個回聲或文本文件行都被用作菜單的輸入。意思是,我爲後面的所有行輸入錯誤,因爲名字沒有映射到菜單中的數字選項。是否有我需要設置的標誌或我應該格式化文件的方式?也許文字不應該以新的方式打破。 – MattB

1
(
    echo 1 
    echo FName 
    echo LName 
) | java -classpath %LIBRARY_PATH% sample.Test 

由於存在一些特殊情況,請注意回聲。

+0

它看起來像一個空格被添加到我回聲的每個字符串的末尾,所以我甚至不能使用第一個回顯選擇一個菜單選項。錯誤:輸入選項:錯誤嘗試閱讀您的選擇! 異常:java.lang.NumberFormatException:對於輸入字符串:「1」 – MattB

+0

事實上,我可以重現那些多餘的空間。 (我之前並沒有意識到它們的存在,因爲我用過的測試忽略了它們。)我想這肯定是某種命令處理器的特質。 – Neil