引子:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21@echo off & setlocal EnableDelayedExpansion
set j=0
for /f "delims=""" %%i in (整理好的ip.txt) do ( rem 循环遍历每一行
set /a j+=1
set con!j!=%%i rem 使用了EnableDelayedExpansion,将支持“!”的延迟符
call set a=%%con!j!%%
set a=!a:.0.0=.0.0 !
echo !a!>>最终可用ip.txt
)
del 整理好的ip.txt
pause
以上是我写的将“纯真ip扫描”扫出来格式乱的ip重新格式化的一段bat,由上解读:
@echo off & setlocal EnableDelayedExpansion
@echo off表示bat开头,&表与,setlocal EnableDelayedExpansion表示允许!符号的使用(一般可用于for循环内部)for /f "delims=""" %%i in (整理好的ip.txt) do (
for /f 的基本用法提取文本信息,delims=”””表示命令要用什么作为分隔符,%%i表示保存到i变量中/a
是指定一个变量等于一串运算字符,上面也就是指定j变量=j+1这个运算式set con!j!=%%i
循环设置con1、con2……,并将i的值赋给它(!j!表示j这个变量)。call set a=%%con!j!%%
call表示启动延迟变量,它也可以写成set a=!con!j!!set a=!a:.0.0=.0.0
!表示将a变量中的“.0.0”字符串替换为“.0.0 ”,并重新赋值给aecho !a!>>最终可用ip.txt
将a变量追加写入文本(>表示覆盖写入)del 整理好的ip.txt
删除原文本文件
更多文章,请关注:开猿笔记