2014-01-23 28 views
1

下面是我目前的.bat內容。我在窗戶cmd上運行它。它會連接到遠程Linux服務器並提示我輸入密碼。但在我把密碼和登錄名作爲遠程主機後,linux服務器不會運行我的ls命令。請幫忙。如何讓我的.bat文件運行linux命令到遠程linux

@echo off 
ssh [email protected] 
ls 
+0

想法是如何在window .bat文件中運行linux命令。 linux會讀取這個.bat命令並執行裏面的linux命令。 有人嗎? – Learner

回答

1

你真的應該做man ssh,因爲這是有解釋(你也可以做一個互聯網搜索,獲得的答案)。

但是,無論如何要回答你的問題:你應該把你想要在遠程機器上運行的所有命令放在與實際ssh命令相同的行上,例如運行目錄列表並grep包含「foo」的所有文件,做:ssh <user>@<host> 'ls|grep foo'

+0

有可能將批處理文件的其餘部分傳遞給ssh。所以嚴格來說,您不需要在同一行或單獨的文件中將命令發送到遠程主機。這可能是有用的,特別是如果序列很長,但這可能在OP問題之外。 – joojaa

0

我暗示可以在@Sami Laine的評論中將批處理文件中的代碼包含在批處理文件中。這就是它的樣子:

@echo off 
setlocal 
    :: Run the end of this file in remote computer 
    more +8 %0 | plink [email protected] "tr -d '\r'| bash" 
endlocal 
exit /b 0 

:: remote bash stuff to be bootstrapped 

pwd 
ls -h 

我使用plink,因爲那是我安裝的,但它應該與大多數ssh口味。也適用於ksh和zsh。也許還與tcsh csh等。這有時可能是有用的。同樣的技術可以用於很多事情。小心+8偏移值,它必須在正確的線上。