为 Cisco CLI 命令创建 BAT 文件(左 string/concatentate 进入输出)

Creating BAT File for Cisco CLI commands (left string/concatentate into output)

我想我已经对此进行了充分的研究,但我还没有想出太多。或者更确切地说,我认为我找到了碎片,但我的 scripting/BAT/Programming 还不够强大,无法将它们拼凑在一起。我对这应该如何进行有一个想法,但我认为我可能过于复杂化了。所以我需要帮助来获得最终解决方案,也许还需要对 code/process 进行一些改进。

我正在尝试创建一个或两个 BAT 文件,以允许我取消对我们 Cisco 无线路由器上卡在空闲状态的任何 mac 地址的身份验证。我有我的初始 BAT 文件来登录路由器(通过 plink)并吐出一个包含所有 mac-地址的输出文件。 现在我有了输出文件,我需要从每一行中删除前 14 个字符,将它们连接到另一个命令中并将它们反馈给路由器以强制取消身份验证。

输出的内容和行是随机的,但它是格式化的。所以我知道我可以可靠地说每行的前 14 个字符是我需要的。

我发现了一些类似的东西,但我太新手了,无法使它们适应我的需要。但是我正在阅读的字符串命令

set str=
echo.%str%
set str=%str:~0,14%
echo.%str%

看起来它们应该在同一个文件中,并且不会跨越多行或未知行数。我很可能又错了;新人

在我得到前 14 个字符后,我还需要将它组合到命令的中间。我读过有关文件之间连接的内容,但它似乎输出更像

one
potato
two

而不是

one potato two

我需要后者的形式。 希望到最后我会有一个看起来像

的文件
one potato two
one carrot two
one apple two
one etc two

如果我能得到剥离和连接的形式,我想我可以弄清楚如何将它发送回路由器。

所以我想更短的版本是,我如何在随机 output.txt 文件中取出每行的前 14 个字母,将其组合到命令的中间(一个 insertHere 两个),然后通过op2.txt?

感谢您的帮助,如果不清楚或者是某种形式的转发,我深表歉意。我对所有这些主题都处于基础水平,因此解释为什么事情是这样的也会有所帮助。阅读 CMD /help 主题并没有真正为我清除任何东西。

编辑:这是我用来获取输出文件的内容以及输出的样子。

@echo on
REM Log in to Cisco box via ssh
plink -v -ssh USERNAME@X.X.X.X -pw PWD -m "c:\temp\WirelessDump.txt" >> "C:\temp\output.txt"
pause

-m 参数推送以下 cisco 命令 sho wir cl sum | inc Idle,然后 >> 将信息推送到 output.txt,如下所示

10ae.xxxx.xxxx APe4c7.xxxx.xxxx                 3    Idle               11n(2.4)

5c0a.xxxx.xxxx APc067.xxxx.xxxx                 3    Idle               11n(2.4)

6809.xxxx.xxxx APe4c7.xxxx.xxxx                 3    Idle               11n(2.4)

8019.xxxx.xxxx APc067.xxxx.xxxx                 3    Idle               11n(2.4)

a826.xxxx.xxxx APe4c7.xxxx.xxxx                 3    Idle               11n(2.4)

我想让我的输出看起来像

wir cli mac-address a826.xxxx.xxxx deauth forced 
wir cli mac-address 10ae.xxxx.xxxx deauth forced 
etc
@echo off
setlocal
for /f %%a in (C:\temp\output.txt) do >>"youroutputfilename.txt" echo wir cli mac-address %%a deauth forced

应该按照您指定的方式处理该数据。

'for /f' 读取文件的每一行并将第一个 "token" 分配给 %%a。 >> 如您所知,附加到文件。您的其余文字似乎是不变的,所以我只是逐字记录。