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

[文本处理] bat脚本怎样提取文本以逗号分割的前16个字符?

bat提取 a,b文本行 格式  以 逗号, 分割 。  a(前16个字符)=b(前16个字符) 的文本行???怎么写?


a(前16个字符)    =     b(前16个字符) 的文本行。   


文本1.txt
www.diffordsguide...,www.fordsky.com
www.nvidia.com,www.fordsky.com
gitee.com,www.learn2link.com
www.walmart.com,www.learn2link.com
www.swkong.com,www.junhengjs.com
csol.tiancity.com...,www.junhengjs.com
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com


提取这3个
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com

  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. REM 输入输出文件
  4. set "in_txt=1.txt"
  5. set "out_txt=2.txt"
  6. REM 提取的域名
  7. set "host_list=cnphotoshop shabasoku shoku"
  8. (
  9. for /f "tokens=1* delims=," %%i in ('findstr "%host_list%" "%in_txt%"') do (
  10. set "a=%%i"
  11. set "b=%%j"
  12. echo !a:~0,16! = !b:~0,16!
  13. )
  14. )>"%out_txt%"
  15. pause&exit
复制代码

TOP

回复 2# went


数据很多。怎么只提取了3个,提取出来的数如下。跟我说的不大一样?

www.cnphotoshop. = www.cnphotoshop.
www.shabasoku.co = www.shabasoku.co
www.shoku.com = www.shoku.com

TOP

回复 3# idc878787


    代码是提取包含第七行列出的域名的信息,逗号两边各取前16个字符
不知道你的实际需求是什么

TOP

回复 4# went


    文本1.txt    我发的内容还有很多。只发了部分内容

我要提取的是。  a(前16字符) 等于b(前16字符)    的  文本行。 ???

TOP

第七行改成下面,这个结果吗
  1. set "host_list=.*"
复制代码

TOP

回复 6# went

不对。我要的是

  例如  文本1.txt
www.diffordsguide...,www.fordsky.com
www.nvidia.com,www.fordsky.com
gitee.com,www.learn2link.com
www.walmart.com,www.learn2link.com
www.swkong.com,www.junhengjs.com
csol.tiancity.com...,www.junhengjs.com
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com


生成文本2.txt
www.cnphotoshop.c...,www.cnphotoshop.com
www.shabasoku.com...,www.shabasoku.com
www.shoku.com,www.shoku.com

TOP

回复 7# idc878787
  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. REM 输入输出文件
  4. set "in_txt=1.txt"
  5. set "out_txt=2.txt"
  6. (
  7. for /f "usebackq tokens=1* delims=," %%i in ("%in_txt%") do (
  8. set "a=%%i"
  9. set "b=%%j"
  10. if "!a:~0,16!"=="!b:~0,16!" echo %%i,%%j
  11. )
  12. )>"%out_txt%"
  13. pause&exit
复制代码

TOP

回复 8# went


   万分感谢。 要说就是这个

TOP

返回列表