使用plink获取putty中已保存会话的列表

时间:2011-06-08 15:58:33

标签: putty plink

我正在尝试在windows下编写我的脚本来控制putty。 假设我有一个名为mySession的会话。我可以使用以下命令向它发送命令:

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

现在说我保存了很多不同的会话。有没有办法循环遍历所有会话列表来运行此命令?

非常感谢

1 个答案:

答案 0 :(得分: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

希望这会有所帮助,即使你的帖子已近一年了。欢迎提出改进代码的评论。