2011-06-08 104 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 

希望这有助于,即使您的文章几乎是一岁。欢迎提出改进代码的意见。