2012-06-12 50 views
4

運行在Windows命令行shell腳本(帶參數)我需要執行哪些遠程運行shell腳本在Linux箱內批處理腳本。要通過putty.exe

現在,一切工作正常,但如果我嘗試將命令行參數添加到shell腳本,則腳本無法執行。

工作 - >前

C:\ TEMP \測試> putty.exe -pw 「布拉布拉」 -m 「test-script.sh」 [email protected]

但是,如果我嘗試提供參數,它將無法執行。例如:

不工作

C:\ TEMP \測試> putty.exe -pw 「布拉布拉」 -m 「test-script.sh OK-1[email protected]。 110.57

where ok-1 = command line argument for local script test-script.sh 

我怎樣才能解決這個問題呢?

+0

從[文件](http://the.earth.li/~sgtatham/putty/0.62/puttydoc.txt)說:「'-m」選項希望得到一個本地文件名,它會從該文件讀取命令。「 –

+0

@dystroy,謝謝你的建議。我從你的回答中得出的結論是,你建議我使用-m選項。我已經使用-m選項,它wors就像一個魅力,但如果我想我的bash腳本(其中駐留在本地)接受(在這種情況下,OK-1)的命令行參數我將如何實現這 – samantha

+0

@samantha - 我不知道認爲你可以通過'-m'選項來實現你正在嘗試的。 '-m'選項是提供一個命令文本文件,該命令文本文件是按原樣並在目標服務器上執行的。據我所知,'-m'不是用來考慮命令行語法。相反,'-m'告訴putty抓住'-m'後面提到的文件並遠程執行它。所以,當你提供一個命令行參數時,說'ok-1',putty認爲'ok-1'是一個文件.HTH。我可以提供一種替代方法來完成你正在努力實現的目標。 –

回答

6

而不是使用putty.exe,您可以使用pscpplink(PuTTY附帶的實用程序)來執行此操作。使用這樣的命令:

pscp.exe -pw "blabla" test-script.sh [email protected]:/some/path/ 

到腳本複製到遠程服務器,然後使用如下命令:

plink.exe -ssh -pw "blabla" [email protected] /some/path/test-script.sh ok-1 

來執行它。

+0

感謝您的解決方案。在英國遲到,我會明天在辦公室嘗試一下,讓你們知道它是否有效。再次感謝 – samantha

+0

Hi @bta,我在窗口上從cmd.exe嘗試了你的命令,但是失敗了。我得到像「bash:ok-1:命令未找到」的錯誤 – samantha

+0

@ samantha-哎呀,我在我的'plink'命令中輸入了一個錯字。服務器地址和要運行的命令之間不應該有冒號。查看我編輯的答案以獲取正確的語法。 – bta