我正在使用以下PuTTY.exe命令在Windows环境中运行批处理文件:
for /L %%n in (1,1,5) do (
SET z=Site%%n%
start c:\Users\emrpocadmin\desktop\putty.exe -ssh IPAddress -l User -pw Password -m c:\Users\emrpocadmin\desktop\cmds.txt -load Site%%n%
)
此批次应加载PuTTY中预定义的变量配置文件(n
从1到5),并在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”通道命令中的多个命令。
PuTTY / Plink手册的引用部分3.8.3.6 -m
: read a remote command or script from a file:
对于某些服务器(尤其是Unix系统),您甚至可以在该文件中放入多行并依次执行多个命令或整个Shell脚本;但这可以说是一种滥用,并且不能期望它在所有服务器上都能正常工作。 尤其是众所周知,[[not与某些“嵌入式”服务器,例如Cisco路由器一起使用。
-m
与输入重定向一起使用可以解决此问题(无论如何,您都不应该使用PuTTY来自动执行命令)。>>