我正在尝试在windows下编写我的脚本来控制putty。 假设我有一个名为mySession的会话。我可以使用以下命令向它发送命令:
plink -load mySession -l myUserName -pw myPassowrd ps -ef
现在说我保存了很多不同的会话。有没有办法循环遍历所有会话列表来运行此命令?
非常感谢
答案 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
希望这会有所帮助,即使你的帖子已近一年了。欢迎提出改进代码的评论。