我认为我已经充分考虑了这一点,但我还没有想出多少。或者更确切地说,我认为我已经发现了一些内容,但我在脚本/ 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
答案 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。您已经知道>>
附加到文件。你文本的其余部分似乎是不变的,所以我只是逐字记录。