2017-10-18 137 views
0

请帮助我谢谢, 后,这是我的文本文件我如何把新的生产线使用批处理脚本遍历文本文件中的某些部分

2000,license(s) used by [email protected] [180.16.10.168] 
21000,license(s) used by [email protected] [180.16.10.168] 
21000,license(s) used by [email protected] [180.16.10.168] 
21000,license(s) used by [email protected] [180.16.10.168] 
2000,license(s) used by [email protected] [180.16.10.55] 
21000,license(s) used by [email protected] [180.16.10.55] 
21000,license(s) used by [email protected] [180.16.10.55] 
21000,license(s) used by [email protected] [180.16.10.55] 
21000,license(s) used by [email protected] [180.16.10.72] 
21000,license(s) used by [email protected] [180.16.10.72] 
21000,license(s) used by [email protected] [180.16.10.72] 
1,license(s) used by [email protected] [180.16.10.90] 
21000,license(s) used by [email protected] [180.16.10.90] 
21000,license(s) used by [email protected] [180.16.10.90] 
21000,license(s) used by [email protected] [180.16.10.90] 
21000,license(s) used by [email protected] [180.16.10.90] 
21000,license(s) used by [email protected] [180.16.10.90] 
21000,license(s) used by JITHIN [email protected] [180.16.10.386] 
21000,license(s) used by JITHIN [email protected] [180.16.10.86] 
21000,license(s) used by [email protected] [180.16.10.50] 
21000,license(s) used by [email protected] [180.16.10.15] 
21000,license(s) used by [email protected] [180.16.10.15] 
21000,license(s) used by [email protected] [180.16.10.149] 
21000,license(s) used by [email protected] [180.16.10.149] 
21000,license(s) used by [email protected] [180.16.10.149] 
168000,of 168008 license(s) used: 

这是我的代码

@echo off 
setlocal enabledelayedexpansion 
REM set "string=A cat and dog had a [180.16.10.168]" 
for /f "tokens=*" %%a in ('type output.txt') do (
set line=%%a 
for /f "tokens=5" %%i in ("%line%") do set word2=%%i 
echo %word2% 
ECHO. 
echo !line! 
) 
REM start output1.txt 
pause 

我想从文件中迭代相同的IP地址后,把新线, 任何人都可以帮助我, 我工作了三天 谢谢

+0

批处理脚本必须检查IP地址,它必须把线你面对每个部分 –

+0

什么错误后? – Nidhi257

+0

请编辑您的问题,包括你已经尝试的代码。如果你没有任何代码,请编辑您的问题以包含您编写的伪代码。 – SomethingDark

回答

0

正如SomethingDark已经指出的那样,你非常接近。使用其他方法来提取IP(因为它不是令牌5中的每一行)和可变记住上次IP:

echo off 
setlocal enabledelayedexpansion 
(
for /f "tokens=*" %%a in (output.txt) do (
    for /f "tokens=2 delims=[]" %%i in ("%%a") do (
    if "!oldIP!" neq "%%i" (
    if defined oldip echo/ 
    set "oldIP=%%i" 
    ) 
) 
    echo %%a 
) 
)>output1.txt 
start output1.txt 
pause 

(注:你可以使用for变量(%%a)直接,没有必要!line!

+1

我只是要将他推向正确的方向;我想他最终会得到它。 – SomethingDark

+0

非常感谢,它已经得到解决,感谢您给予我们的时间 –

+0

当'oldip'为空时删除最初的换行符只是一个小痒 - 否则,就像我拥有它(但我太华丽:)) – Magoo

相关问题