如何使用 PuTTY/Plink 在 Windows 批处理文件中的设备上顺序执行多个命令?

2023-11-29

我正在尝试使用 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指定的命令-mswitch 使用“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(使用前将#替换为@)

如何使用 PuTTY/Plink 在 Windows 批处理文件中的设备上顺序执行多个命令? 的相关文章

  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 保存并加载 .bat 游戏

    我正在制作一个用bat编写的文本游戏 并且游戏已经完成 或者更多 其中的很大一部分 例如命令 以及可以玩它的阶段 但是 我想添加保存游戏并再次加载的功能 我认为可以通过让 bat 文件写入需要保存的变量 例如项目变量 来做到这一点 但是 我
  • Windows 批处理:如何添加主机条目?

    我想使用此批处理脚本通过使用自动将新条目添加到我的主机文件中windows questions tagged windows batch 不幸的是 剧本只需在主机文件中添加一行 当我以管理员身份运行脚本时 又出了什么问题 echo off
  • 流浪家园慢

    我有一个基于 Laravel Homestead 的 vagrant 服务器 用于在本地测试我的 Laravel 站点 大部分情况下它运行得很好 然而 最近 我遇到了问题 它会停止几分钟 典型 到几个小时 罕见 这种情况每 15 分钟左右就
  • 在批处理脚本中发送 Windows 密钥

    我最近一直在使用SendKeys使用批处理脚本的函数 我已经了解如何在窗口中输入某些键 例如 Tab 键 SendKeys TAB 或者退格键 SendKeys BACKSPACE 但我一直尝试在不按Windows键的情况下输入它 不幸的是
  • 为什么 choice.com 在批处理文件中创建无限循环?

    昨天我已经下载了choice com命令从这里FTP link ftp ftp microsoft com Services TechNet Windows msdos RESKIT SUPPDISK CHOICE COM在 Windows
  • 使用 Jenkins Git 插件中的 SSH 密钥在构建期间运行 Git 命令

    我们在 Jenkins 上的构建作业作为发布构建的一部分运行一些 git 命令 例如 git push 和 git pull 因此需要一种在构建期间从 shell 运行经过身份验证的 git 命令的方法 我们的詹金斯奴隶不持有任何凭证 因为
  • Windows 批处理文件:如何启用命令的内联回显

    如果在 Windows 批处理文件中默认禁用 echo 是否有办法为特定命令 内联 启用它 我知道可以回显特定命令disabled通过在命令前添加 但是有没有办法做相反的事情呢 例如 假设有一个像这样的批处理文件 echo off cmd1
  • 无法通过 SSH 连接到 EC2 实例

    因此 我从网上启动了我的实例 下载了密钥对并安装了它 大约一天的时间里一切都运行良好 然后我重新启动了计算机 但我无法再通过 SSH 连接到它 我尝试重新下载密钥对并重新安装它 但我不断收到 权限被拒绝 公钥 错误 这是详细的输出 我也尝试
  • 如何在批处理文件中测试当前驱动器号?

    我正在尝试编写一个批处理文件 该文件获取运行批处理文件的驱动器号 并使用它的 IF 语句 例如如果字母是M 则会跳转到标签 mSection 这可能吗 您可以使用 d0 来获取驱动器号 像这样的东西 IF d0 M CALL mSectio
  • 如何使用 Windows 命令行环境查找和替换文件中的文本?

    我正在使用 Windows 命令行环境编写批处理文件脚本 并希望用另一个文件 例如 BAR 更改文件中某些文本 例如 FOO 的每次出现 最简单的方法是什么 有内置函数吗 这里的很多答案都帮助我指明了正确的方向 但是没有一个适合我 所以我发
  • 午夜后时间设置不正确

    我使用以下命令以更易读的格式获取当前日期 时间 set day date 4 2 set mth date 7 2 set yr date 10 4 set hur time 0 2 set min time 3 2 set bdate d
  • 仅当存在较新的文件时才删除文件的 Bat 文件

    我们的备份系统每天都会创建 bak 文件 如果遇到问题 我们可以使用该文件来恢复文件 如果不管这些 它们会填满我们的存储空间 所以我找到了一个批处理文件 我可以在创建新批处理文件后每天运行该文件来删除旧的批处理文件 forfiles p c
  • 回显 unicode 字符

    我想通过运行bat 文件在cmd 中回显unicode 字符 我准备了一个简短的脚本 echo off SET message G p3 echo message pause 我怎样才能做到这一点 是否可以直接将这封信放入代码中 这样做 两
  • Paramiko ValueError“p 的长度必须恰好为 1024、2048 或 3072 位”

    我正在尝试使用 Python 脚本连接 SFTP 由于 p 错误 我无法连接 import paramiko client paramiko SSHClient client load system host keys client con
  • 如何通过批处理文件检查服务是否正在运行并启动它,如果它没有运行?

    我想编写一个执行以下操作的批处理文件 Check if a service is running 如果正在运行 请退出批处理 如果没有运行 启动该服务 到目前为止 我在谷歌上搜索的代码示例被证明不起作用 所以我决定不发布它们 启动服务是通过
  • 已安装全局 NPM 包但未找到命令

    我已经全局安装了两个 npm 包 下载 https www npmjs com package download and 谜虚拟盒 https www npmjs com package enigmavirtualbox通过命令行 npm
  • 如何获取Windows批处理的父文件夹

    我正在编写一个批处理文件 我需要获取该bat文件的父文件夹 有可能吗 注意 我的意思是批处理文件的父文件夹 而不是调用该批处理的提示的当前目录 Thanks 批处理的父文件夹位于变量中 dp0位于 例子 echo off setlocal
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • 如何设置任务在使用 vbs 登录时以当前用户身份运行而无需管理员权限?

    从命令行 我可以创建一个在登录时运行的计划任务 无需管理员权限或用户输入密码来设置任务 但是我必须使用 xml 文件来执行此操作 下面是一个示例 xml 其中 Domain User 部分必须在运行时替换为当前用户的域和名称

随机推荐

  • ActionBar 选项卡标题中的自定义字体

    我正在尝试在我的上设置自定义字体ActionBar选项卡的标题 我看到更多的开发人员要求以正确的方式在 SO 上执行此操作 例如如何自定义操作栏选项卡的字体 如何 如果可能 在选项卡文本的 ActionBar 中使用资产文件夹中的字体设置自
  • ValueError:应在输入列表上调用合并层。张量流 Keras

    我目前正在尝试使用 MobileNetV2 的前 50 层 因此 我想提取这些层并创建一个新模型 我以为我可以调用每一层 但是 block 2 add 层会导致错误 我不明白为什么 import tensorflow as tf from
  • 使用服务器进行表单验证

    我有一个表单 我想通过检查电子邮件是否存在来执行 http 验证 但它返回错误 这是我的表格 在表单组件上 constructor private formBuilder FormBuilder private validationServ
  • 如何隐藏jSlider的旋钮?

    我需要自定义JSlider的旋钮 我需要将我自己的旋钮图像放在 Jslider 的默认旋钮上 问题是目前有两个旋钮做出响应 一个是我自己的旋钮 第二个是默认旋钮 请告诉我如何隐藏默认旋钮或任何其他解决方案 下面的代码用于执行此操作 publ
  • 反向地理编码在某些 Android 设备上不起作用?

    我正在开发一个地图应用程序 无法在该手机中获取地址 其android版本是4 3 如下所示 但它在我的手机上运行良好 其版本是4 1 2 如下所示 它在某些棒棒糖版本中运行良好 final Geocoder gc new Geocoder
  • K8s:如何通过服务访问我的应用程序?

    我正在学习 K8s 并在 OSX 上安装了 minikube 我正在阅读 Nigel Poulton 的 K8s 书 并在第 5 章 部署 中进行实验 我有这样的部署 k8s cat deploy yaml apiVersion apps
  • 将 Azure 流量管理器与移动应用程序结合使用

    Azure 流量管理器可以与移动应用程序一起使用 特别是通过社交登录吗 我已经配置了一个流量管理器和两个应用程序服务 例如 mobileapp1 和 mobileapp2 来使用它 它们似乎与邮递员和响应配合得很好 一切都正常 现在 我已在
  • 如何在Linux中使用addr2line命令?

    我试图在 Unix 中使用 addr2line 命令 但每次它都会给出与 0 相同的输出 我发出命令为addr2line e a out 0x4005BDC 我在运行这个 a out 可执行文件时得到了这个地址valgrind查找内存泄漏的
  • MathJax 未在 Sphinx 中呈现

    我在 Sphinx Rest 中有一个文档集 我已将 sphinx ext mathjax 包含在 conf py 中 并包含行 mathjax path http cdn mathjax org mathjax latest MathJa
  • 在上一个命令失败后创建带有红色 $ 的 Bash 命令提示符

    我是 Bash 编程新手 我正在努力创建一个自定义 Bash 命令提示符 我的目标是创建一个提示 仅在登录名和主机名与我通常使用的不同时显示它们 当位于 Git 版本控制下的目录中时 我还希望将当前的 Git 分支附加到命令提示符 我想将登
  • Android:查找动态创建的视图的ID

    我有以下问题 在 Android Studio 中我生成 enEditText动态地当ExerciseButton被点击 public void exerciseButtonClick View view EditText exercise
  • 在 Vertex AI 用户管理笔记本启动时公开现有环境的内核

    这是一个延续这个线程 发布在这里 因为它太复杂 无法发表评论 TL DR 在 Vertex AI 用户管理笔记本中 如何通过重复的停止和启动周期保留存储在数据磁盘上的现有 venv 以及 conda 如果可能 环境的公开内核图标 Detai
  • 为什么 scrapy xpath 函数不支持 'matches()' 语法?

    我正在运行 scrapy 0 20 2 scrapy shell http newyork craigslist org ata 我想列出广告页面的所有链接 并将其与index html分开 sel xpath a contains hre
  • 我可以配置 Hibernate/JPA 在仅修改非时间戳字段时更新实体记录吗?

    目前我有一个 Hibernate 实体类 如下所示 Entity Table name entity public class Entity implements Serializable private static final long
  • Elixir 到 Erlang 的转换

    我想看看当 Elixir 转换成 Beam 文件时会发生什么 有没有办法在控制台或文件中打印它的翻译方式 我想知道这个模块在 erlang 中是什么样子的 我在想是否有 Elixir 的调试模式 它会输出以上任何内容 更具体地说 我有这个例
  • PHP:oci_bind_by_name 和时间戳字段导致“ORA-01461:只能绑定 LONG 值以插入 LONG 列”

    我有一个 Oracle 数据库 需要将包含 YYYY MM DD HH MM SS 格式的日期的字符串插入 Oracle 时间戳字段中 为此我写了这段代码 date 2013 01 01 10 10 10 sql oci parse c I
  • 使用 nlm 函数进行多变量优化

    nlm 函数可以用于多变量优化吗 那会如何运作呢 例如 我想找到 x 和 y 以使 f x y 最小化 nlm 函数如何工作 类似的东西 nlm f c 0 1 0 1 创建一个接收向量的函数 f lt function X x lt X
  • 如何使用请求访问此类网站? [复制]

    这个问题在这里已经有答案了 这是我第一次遇到不允许我访问网页的网站 我不知道为什么 也不知道如何从这个网站上抓取 我的尝试 import requests from bs4 import BeautifulSoup def html url
  • nasm 系统调用 Linux

    我有一个关于汇编中的 linux x86 系统调用的问题 当我在 Linux 上使用 nasm 创建新的汇编程序时 我想知道必须使用哪些系统调用来执行特定任务 例如读取文件 写入输出或简单的退出 我知道一些系统调用 因为我读过它们在互联网上
  • 如何使用 PuTTY/Plink 在 Windows 批处理文件中的设备上顺序执行多个命令?

    我正在尝试使用 SSH 以自动化方式配置设备 bat脚本 在下面的代码片段中 我以正确的顺序生成一个包含所需命令的文件 然后使用 SSH 连接执行 读取该文件plink 这会导致一条错误消息 命令未知 我认为这是由于命令不是逐一执行而是插入