Board logo

标题: [文本处理] BAT批处理如何修改下文本? [打印本页]

作者: uckiss    时间: 2014-1-13 14:02     标题: BAT批处理如何修改下文本?

115.56.52.230    4258  Open            
115.56.52.230    4259  Open            
115.56.56.79     4277  Open            
115.56.56.211    4222  Open            
115.56.56.211    4228  Open            
115.56.60.203    4265  Open            
115.56.68.29     4233  Open            
115.56.70.211    4277  Open            
115.56.75.108    4281  Open            
115.56.75.108    4285  Open            
115.56.77.70     4218  Open            
115.56.77.70     4219  Open     
115.56.90.3      4277  Open

能不能用批处理,转换成
115.56.77.70:4219
115.56.75.108:4285
115.56.90.3:4277

这种格式 的            先谢了
作者: 522235677    时间: 2014-1-13 14:26

  1. @echo off
  2. for /f "tokens=1,2" %%a in (1.txt) do echo %%a:%%b>>2.txt
  3. pause
复制代码

作者: uckiss    时间: 2014-1-13 15:11

回复 2# 522235677


    谢谢
作者: uckiss    时间: 2014-1-13 15:49

回复 2# 522235677


    -------------------------------------------------------------------------------
Performing Time: 1/13/2014 15:3:1 --> SYN Scan: About To Scan 131072 IP For 101 Ports Using 1 Thread
LastIP Scanned: 115.56.0.49:4215
Scan 48 IPs Complete In 0 Hours 0 Minutes 1 Seconds. Found 0 Hosts
-------------------------------------------------------------------------------               
115.56.51.32     4239  Open            
115.56.104.5     4223  Open            
115.56.121.230   4277  Open            
115.56.104.5     4217  Open            
115.56.104.5     4220  Open            
115.56.123.2     4277  Open            
115.56.125.227   4211  Open            
LastIP Scanned: 115.56.126.220:4225
Scan 32475 IPs Complete In 0 Hours 14 Minutes 56 Seconds. Found 72 Hosts
-------------------------------------------------------------------------------
用这种 方式太麻烦
echo off
echo=================================================================================
pause>nul
for /f "eol= tokens=1,2" %%a in (1.txt) do echo %%a:%%b>>2.txt
for /f "eol=- tokens=1 delims= " %%a in (2.txt) do echo %%a>>s1.txt
for /f "eol=P tokens=1 delims= " %%a in (s1.txt) do echo %%a>>s2.txt
for /f "eol=S tokens=1 delims= " %%a in (s2.txt) do echo %%a>>S3.txt
for /f "eol=L tokens=1 delims= " %%a in (s2.txt) do echo %%a>>s4.txt
del S1.txt
del S2.txt
del S3.txt
del S4.txt
del 1.txt

能不能简单一点的,比如说 :空格 - P  S   L 只用一个命令,FOR,就全执行了,,,,,
作者: battab    时间: 2014-1-13 16:00

回复 4# uckiss
  1. @echo off
  2. for /f " skip=5 tokens=1,2" %%a in (1.txt) do echo %%a:%%b>>2.txt
  3. pause
复制代码
用这个试试
作者: uckiss    时间: 2014-1-13 16:32

回复 5# battab


    这个不行,
作者: uckiss    时间: 2014-1-13 16:35

回复 5# battab


    在网上找了半天,findstr /I /V 这个 命令可以,但用法还没找出来
作者: uckiss    时间: 2014-1-13 16:39

回复 7# uckiss


    SKIP,是跳过五行的意思,,,,,前五可以,,            关键是,中间,,的行,也有好多,
作者: uckiss    时间: 2014-1-13 16:41

比如说,包含 - S P L的行,全部,忽略,或不要,,,,,EOL 可以表达多个么,    EOL= - S P L   如果可以怎么表达出来
作者: uckiss    时间: 2014-1-13 16:43

回复 5# battab


    EOL如果不可以,多个,,那么,可以用其他命令吧,比如说,删除含有 - P S  L 的行,
作者: 522235677    时间: 2014-1-13 16:56

  1. @echo off
  2. for /f "tokens=1,2" %%a in ('findstr /i "open" 1.txt') do echo %%a:%%b>>2.txt
  3. pause
复制代码

作者: uckiss    时间: 2014-1-13 17:21

回复 11# 522235677


    谢谢你们啦,搞定
作者: battab    时间: 2014-1-14 09:40

回复 7# uckiss
  1. @echo off
  2. for /f "tokens=1,2" %%i in ('findstr /i/v "Performing LastIP Scan -"  
  3. test.txt') do echo %%i:%%j>>2.txt
复制代码
这样也能达到目的!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2