所以我目前正在研究扫描网络的批处理文件。我所做的是创建一个文本文件,其中只有网络上每台计算机的IP响应ping请求,并且ping请求的输出保存到名为IPAdresses.txt的文件中 :: ==== ================================================== ====================用批处理脚本解析txt文件中的文本行吗?
setlocal enabledelayedexpansion
@echo off
::文件复位和变量
echo. > %~dp0Logs\IPAddresses2.txt
SET fl=%~dp0Logs\IPAddresses.txt
::此命令执行ping请求并保存只是对%〜dp0Logs \ IPAddresses.txt的回复。 ::每个返回的ping将在文件中产生一个如下所示的行:“回复自192.168.1.1:bytes = 32 time = 2ms TTL = 64”。
FOR /L %%i IN (1,1,254) DO ping -n 1 192.168.1.%%i | FIND /i “Reply” >> %fl%
::该命令解析 “从192.168.1.1答复:字节= 32时间= 2ms的TTL = 64” 行的文件中,并输出保存到%〜dp0Logs \ IPAddresses2.txt。
for /f "usebackq tokens=3" %%t in (`findstr /b /c:Reply from %fl% `) do (
echo %%t >> %~dp0Logs\IPAddresses2.txt
)
:: -----------问题-----------
::这个问题是解析。最后一个命令只会解析“192.168.1.1:”,这是因为它只在行中占用3个令牌(或字符串中的第三组字符)。我需要从“192.168.1.1:”中删除“:”。为了清楚我想删除IP地址末尾的分号和以下空格。
::我试图把每一行放入一个变量并剪切拖尾字符,但我无法让它工作。 ::或者有没有办法改变FOR命令来做到这一点?
我一直在寻找两天,尝试各种各样的工作,但没有运气。 我只需要在文本文件中使用IP来获得更多功能,以及网络范围的NET命令。
任何帮助,将不胜感激 谢谢。