【发布时间】:2011-09-11 00:34:16
【问题描述】:
我正在尝试在 Windows 下编写脚本来控制腻子。 假设我有一个名为 mySession 的会话。我可以使用以下命令向它发送命令:
plink -load mySession -l myUserName -pw myPassowrd ps -ef
现在说我保存了许多不同的会话。有没有办法遍历我的所有会话列表来运行这个命令?
非常感谢
【问题讨论】:
我正在尝试在 Windows 下编写脚本来控制腻子。 假设我有一个名为 mySession 的会话。我可以使用以下命令向它发送命令:
plink -load mySession -l myUserName -pw myPassowrd ps -ef
现在说我保存了许多不同的会话。有没有办法遍历我的所有会话列表来运行这个命令?
非常感谢
【问题讨论】:
据我所知,会话存储在注册表中 (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
希望这会有所帮助,即使您的帖子已经发布了将近一年。欢迎提出意见以改进代码。
【讨论】: