求 :bat批处理代码, txt文本中的内容排列和替换

例如 sh.txt 文本里面的内容为不同的IP地址:
A.B.C.D A.B.C.D

A.B.C.D A.B.C.D

A.B.C.D A.B.C.D
……

2个竖排全部是不同的ip地址,
先把第1竖排的IP和第2竖排的IP合并成1个竖排,然后把C和D位置的数字替换成数字0,谢谢
执行完bat后这个文本后sh.txt生成ok.txt,替换后的内容样例为:
iptables -A INPUT -s A.B.0.0/16 -j ACCEPT

iptables -A INPUT -s A.B.0.0/16 -j ACCEPT
iptables -A INPUT -s A.B.0.0/16 -j ACCEPT
iptables -A INPUT -s A.B.0.0/16 -j ACCEPT

……

@echo off&setlocal enabledelayedexpansion
set n=0
for /f "tokens=1,2 delims= " %%i in (sh.txt) do (
set "ip_!n!=%%i"
set /a n=!n!+1
set "ip_!n!=%%j"
set /a n=!n!+1
)
cd.>ok.txt
for /f "tokens=2 delims==" %%i in ('set ip_') do (
set "temp=%%i"
for /f "tokens=1,2 delims=." %%a in ("!temp!") do (
echo iptables -A INPUT -s %%a.%%b.0.0/16 -j ACCEPT>>ok.txt
)
)
echo done.
pause追问

您好,您写的批处理无法运行


正确的效果对比例子,如下:

原文本



批处理之后的文本:

追答

C和D的位置不是都被替换成0了么?

追问

点开bat之后一片黑,运行不了啊

追答

程序在完成之后不是会显示done么?然后按任意键就可以退出了,在文件夹里可以看到一个ok.txt的文件,是不是符合你的要求?

程序运行结束,按任意键退出.

这是sh.txt

这个是生成的ok.txt。

追问

我把你的代码,保存为bat文件后,点开,然后就跳出黑色的cmd框,框里什么也没有,按任意键也没反应

追答

我这里测试了好几次都很正常啊,你可以看截图啊?要不你保存为cmd文件运行试试?或者你给我个样本程序我再试验一下?

追问

好明白了,原来点开没任何动静是因为正在执行呀,现在可以了,谢谢这位大哥了!其实可以添加个执行数据的显示过程的,呵呵

温馨提示:答案为网友推荐,仅供参考
相似回答