为Cisco CLI命令创建BAT文件(左字符串/连接到输出)

时间:2015-02-03 20:42:38

标签: windows batch-file command-line-interface cisco

我认为我已经充分考虑了这一点,但我还没有想出多少。或者更确切地说,我认为我已经发现了一些内容,但我在脚本/ BAT /编程方面还不够强大,无法将它们集合在一起。我对这应该怎么做有一个想法,但我想我可能会过多地复杂化它。所以我需要帮助来获得最终的解决方案,也许还需要对代码/流程进行一些改进。

我正在尝试创建一个或两个BAT文件,允许我在我们的思科无线路由器上取消认证Idle中的任何mac地址。我已经获得了我的初始BAT文件以登录路由器(通过plink)并吐出一个包含所有mac-address的输出文件。 既然我有输出文件,我需要从每一行中删除前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 two),并将其传递给op2 .txt文件?

感谢您的帮助,如果不清楚或是某种转发,我会道歉。我对所有这些主题都处于基本水平,因此解释为什么事情就是这样,也会有所帮助。通过CMD /帮助主题阅读还没有真正解决任何问题。

编辑:以下是我用来获取输出文件以及输出结果的内容。

@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

1 个答案:

答案 0 :(得分:0)

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

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

' for / f'读取文件的每一行并分配第一个"令牌"到%% a。您已经知道>>附加到文件。你文本的其余部分似乎是不变的,所以我只是逐字记录。