我使用putty.exe命令在Windows环境中运行批处理文件:
for /L %%n in (1,1,5) do (
SET z=Site%%n%
start c:Usersemrpocadmindesktopputty.exe -ssh IPAddress -l User -pw Password -m c:Usersemrpocadmindesktopcmds.txt -load Site%%n%
)
此批次应加载变量配置文件(n
从1到5(在Putty中预定义,并一一逐一地在cmds.txt
文件中定义的命令;然后将输出保存到某些文件夹。
但是,在cmds.txt
文件中,我只能输入一个命令!
如何在此TXT文件上输入多个命令,并应将其传递给会话,然后将整个输出结果保存到输出文件中?
我尝试在以下格式上输入cmds.txt
文件上的命令,但不起作用:
show run (work as one command only)
show run; show version (does not work)
"show run; show version" (does not work)
echo show run
echo show version (does not work)
预期的结果是在cmds.txt
文件中输入两个或多个命令,应将其传递给会话,然后将整个输出结果保存到输出文件中。
实际上是Cisco的已知限制,它不支持SSH" Exec" Channel命令中的多个命令。
引用第3.8.3.6节-m
:从Putty/Plink手册文件中读取远程命令或脚本:
使用某些服务器(尤其是UNIX系统(,您甚至可以在此文件中放置多行,并按顺序执行多个命令或整个Shell脚本;但这可以说是一种滥用,不能指望在所有服务器上使用。特别是,与某些"嵌入式"服务器(例如Cisco Routers(一起使用不知道。
使用输入重定向使用PLINK(PUTTY命令行连接工具(可以解决该问题(无论如何您不应使用Putty来自动执行命令(。
plink.exe -ssh IPAddress -l User -pw Password -load Site%%n% < cmds.txt