使用 Plink 在 Windows 批处理脚本中发送响应以进行 Linux 设备交互时遇到问题

问题描述 投票:0回答:1

我正在开发一个 Windows 批处理脚本,该脚本调用 plink 与基于 Linux 的虚拟设备进行交互。目标是发送类似

set account name User1
的命令,作为响应,服务器应提示用户的权限级别。我需要通过发送
0
作为权限级别来响应此提示。

但是,我遇到了一个问题。虽然批处理脚本成功发送了

set account name User1
命令,但它似乎没有按预期处理与服务器的后续交互。具体来说,当服务器提示输入权限级别时,批处理脚本似乎将空格解释为输入。此外,即使我尝试发送
0
作为响应第二个提示的权限级别,服务器似乎不接受它。奇怪的是,服务器还第三次提示输入权限级别。

我对这种行为感到困惑。有其他人遇到过类似的问题或了解可能导致此行为的原因吗?我非常感谢有关如何确保批处理脚本与服务器的提示正确交互并发送所需权限级别的任何指导或建议。

这是我正在使用的批处理脚本的简化版本:

我的批处理文件:

@echo off
setlocal enabledelayedexpansion

set PLINK_PATH=C:\Putty
set SERVER=192.168.100.91
set USERNAME=platformadmin
set PASSWORD=plat123#


(
ping 127.0.0.1 -n 50 > nul
echo set account name user1
ping 127.0.0.1 -n 10 > nul
echo 0

) | "%PLINK_PATH%\plink.exe" -ssh %USERNAME%@%SERVER% -pw %PASSWORD%

pause

CMD输出:

Using username "platformadmin".
Command Line Interface is starting up, please wait ...

   Welcome to the Platform Command Line Interface

VMware Installation:
        4 vCPU: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz
        Disk 1: 110GB, Partitions aligned
        8192 Mbytes RAM

admin:set account name user1

Privilege Levels are:
   Ordinary - Level 0
   Advanced - Level 1

Please enter the privilege level :
privilege level must be 0 or 1, please try again...

Please enter the privilege level :0
privilege level must be 0 or 1, please try again...

Please enter the privilege level :
privilege level must be 0 or 1, please try again...

Please enter the privilege level :

enter image description here

任何关于服务器不接受权限级别的原因以及为什么它似乎误解第一个提示中的空格的见解都将非常有帮助。预先感谢!

我是 Windows bat 脚本新手,开发此脚本是为了最大限度地减少创建多个帐户所需的时间。不能做太多事情。

batch-file plink
1个回答
0
投票

我猜测该设备无法处理批处理文件生成的 Windows CRLF 行结尾/

echo

仅尝试 Linux 的 CR。我认为批处理文件不可能。但 PowerShell(即使是从批处理文件执行)可以做到这一点。请参阅使用 Plink 向串行端口发送登录名和命令之间等待

© www.soinside.com 2019 - 2024. All rights reserved.