[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 请教大大这个批处理 eol=- 为什么就能把后面的全部去除

批处理:
  1. for /f "eol=- tokens=1 delims= " %%i in (result.txt) do echo %%i>>s1.txt
复制代码
Result.txt文件内容:
  1. -------------------------------------------------------------------------------
  2. Performing Time: 1/21/2018 7:57:42 --> Normal Scan: About To Scan 389120 IP Using 1024 Threads
  3. -------------------------------------------------------------------------------
  4. Performing Time: 1/21/2018 7:58:29 --> Normal Scan: About To Scan 389120 IP Using 1024 Threads
  5. 172.87.192.0     6379  Open            
  6. 172.87.192.4     6379  Open            
  7. 172.87.192.1     6379  Open            
  8. 172.87.192.3     6379  Open            
  9. 172.87.192.6     6379  Open            
  10. 172.87.192.2     6379  Open            
  11. 172.87.192.5     6379  Open            
  12. 172.87.192.7     6379  Open            
  13. 172.87.192.9     6379  Open            
  14. 172.87.192.10    6379  Open            
  15. 172.87.192.8     6379  Open        
复制代码
最后得到的s1.txt
  1. Performing
  2. Performing
  3. 172.87.192.0
  4. 172.87.192.4
  5. 172.87.192.1
  6. 172.87.192.3
  7. 172.87.192.6
  8. 172.87.192.2
  9. 172.87.192.5
  10. 172.87.192.7
  11. 172.87.192.9
  12. 172.87.192.10
  13. 172.87.192.8
复制代码
我想了解的问题:
eol=- 这里只将带 - 的行内容全部去除,但是没有发现其他哪一点还可以同时去除: 1/21/2018 7:57:42 --> Normal Scan: About To Scan 389120 IP Using 1024 Threads
以及去除每一行的 6379  Open

tokens=1 delims=

这两个参数似乎没什么作用?我把这两个去掉后执行得到的结果是一样的,我就搞不懂是什么原理能去掉其他那些内容

TOP

tokens=1 表示只获取第一列
如果省略这个参数,默认也是只获取第一列

参考:http://bbs.bathome.net/thread-2189-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher


那都不是重点,其实我想了解的问题是:

eol=- 这里只将带 - 的行内容全部去除,但是没有发现其他哪一点还可以同时去除: 1/21/2018 7:57:42 --> Normal Scan: About To Scan 389120 IP Using 1024 Threads
以及去除每一行的 6379  Open

TOP

回复 4# mango


Performing Time: 1/21/2018 7:57:42 --> Normal Scan: About To Scan 389120 IP Using 1024 Threads
Performing Time: 1/21/2018 7:58:29 --> Normal Scan: About To Scan 389120 IP Using 1024 Threads
172.87.192.0     6379  Open
172.87.192.4     6379  Open

蓝色字体是第一列
tokens=1的作用是获取第一列(换句话说,除了第一列,其他列删除)
这样能理解吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# mango


    delims= ,作用是以空格为分割,把所有内容分割为一列一列的,比如下面的所有的1是第一列,所有的2是第二列,以此类推:
  1. 1 2 3 4
  2. 1 2 3 4
  3. 1 2 3 4
  4. 1 2 3 4
复制代码
tokens=1,作用是取以空格为分割后的第一列数据,也就是所有的1
把这两个去掉,结果还是一样是因为默认就是tokens=1 delims=

TOP

本帖最后由 mango 于 2018-1-22 14:56 编辑

原来是这么回事,现在明白了,只要是用空格隔开的就叫做第二列了,只保留第一个空格之前的内容,感谢大神耐心解答

TOP

返回列表