我正在尝试使用 SSH 以自动化方式配置设备.bat
脚本。在下面的代码片段中,我以正确的顺序生成一个包含所需命令的文件,然后使用 SSH 连接执行/读取该文件plink
。这会导致一条错误消息,命令未知,我认为这是由于命令不是逐一执行而是插入整个文件造成的。
有谁知道如何顺序执行多个命令?
我尝试将commands.txt 文件重定向到plink
没有成功。此外,也不可能为每个命令创建新的 SSH 连接,因为某些命令会将设备转入配置模式。不幸的是,我尝试配置的设备不是基于 Unix 的,因此将命令与&&
or ;
不可能,我需要插入命令,然后“按 Enter”并继续。
配置文件
@echo off
SET /P IpAdres=IP:
SET /p Username=Username:
SET /p Password=Password:
echo command 1 >> commands.txt
echo command 2 >> commands.txt
echo command 3 >> commands.txt
echo command 4 >> commands.txt
plink.exe -batch %IpAdres% -l %Username% -pw %Password% -m commands.txt
设备确实有可能将这些命令解释为一个。使用Plink/PuTTY指定的命令-m
switch 使用“exec”SSH 通道执行,该通道仅针对单个命令而设计。虽然某些 SSH 服务器(如 OpenSSH)可以通过这种方式处理多个命令(因此您的批处理文件可以在那里工作),但这并不是标准行为。您的设备可能使用一些专有的 SSH 服务器,而不是常见的 OpenSSH。
如果你想模拟用户逐一输入命令,请使用输入重定向(这样 Plink 将使用“shell”通道):
(
echo command 1
echo command 2
echo command 3
echo command 4
) | plink.exe -batch %IpAdres% -l %Username% -pw %Password%
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)