2011-06-08 62 views
1

我想在windows下編寫腳本來控制putty。 假設我有一個名爲mySession的會話。我可以使用以下命令發送它:使用plink獲取putty中保存會話的列表

plink -load mySession -l myUserName -pw myPassowrd ps -ef 

現在說我保存了許多不同的會話。有沒有辦法循環遍歷我的所有會話列表來運行此命令?

非常感謝

回答

2

據我所知,會話存儲在註冊表(HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions)。至少在我這裏的環境中是這樣。例如,您可以使用批處理腳本來訪問會話名稱。

@echo OFF 
setlocal ENABLEEXTENSIONS 
set KEY_NAME="HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions" 

FOR /F "usebackq" %%A IN (`REG QUERY %KEY_NAME% 2^>nul`) DO (
    FOR /F "tokens=6 delims=\" %%B IN ("%%A") DO (
     @echo ON 
     "C:\Program Files\PuTTY\PLINK.EXE" -load %%B -l my_user -pw my_password ps -ef 
     @echo OFF 
    ) 
) 

我用tokens=6只獲取路徑(%%A)的最後一部分。我對批處理腳本不太瞭解,因此我甚至不知道是否需要setlocal ENABLEEXTENSION

如果你知道你的名字會你也可以簡單地使用下面的命令:

FOR %%A IN (session1_name session2_name session3_name) DO "C:\Program Files\PuTTY\PLINK.EXE" -load %%A -l my_user -pw my_password ps -ef 

希望這有助於,即使您的文章幾乎是一歲。歡迎提出改進代碼的意見。