【问题标题】:A way of typing multiple commands in cmd.txt file using PuTTY batch against Cisco一种在 cmd.txt 文件中使用 PuTTY 批处理对 Cisco 键入多个命令的方法
【发布时间】:2019-12-11 12:36:33
【问题描述】:

我正在使用下面的 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文件中输入两个或多个命令,并应将其一一传递给会话,然后将整个输出结果保存到输出文件中。

【问题讨论】:

    标签: batch-file ssh command putty cisco


    【解决方案1】:

    这实际上是 Cisco 的一个已知限制,它不支持 SSH“exec”通道命令中的多个命令。

    PuTTY/Plink 手册引用部分3.8.3.6 -m: read a remote command or script from a file

    对于某些服务器(尤其是 Unix 系统),您甚至可以在该文件中放置多行并依次执行多个命令或整个 shell 脚本;但这可以说是一种滥用,并且不能期望在所有服务器上都有效。 众所周知,不能与某些“嵌入式”服务器(例如 Cisco 路由器)一起使用。


    Plink (PuTTY command-line connection tool) 与输入重定向一起使用可能会解决问题(无论如何,您都不应该使用 PuTTY 来自动执行命令)。

    plink.exe -ssh IPAddress -l User -pw Password -load Site%%n% < cmds.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-26
      • 2011-12-15
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 2017-11-30
      • 2015-05-03
      • 1970-01-01
      相关资源
      最近更新 更多