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

[文本处理] [已解决]批处理查找/提取文本中指定位置的特定字符串的字符个数少于/小于指定数值的行

本帖最后由 pcl_test 于 2016-11-25 08:50 编辑

三生有幸发现此论坛
目前小弟遇到一个难题,A.txt每行都是一个URL,其中包含数字,效果如下

http://www.abc.com/product/405917-68-2.html
http://www.abc.com/product/405917-94-4.html
http://www.abc.com/product/405918-38-9.html
http://www.abc.com/product/405919-41-7.html
http://www.abc.com/product/40592-43-6.html
http://www.abc.com/product/40592-64-1.html

405917-68-2.html 这个部分 如果第一部分(这里是405917) 超过5位就不需要,剩下符合条件的保存到B.txt

研究了半天,又看到比大小筛选的,但是小弟这个一行是一个完整的一部分,思维匮乏,望各位论坛大大帮忙解决。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

为答谢帮忙的老师
小弟会另为附上微不足道微信红包,当让会加上微信咯,以后会经常请教的

TOP

方法一
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1* delims=-" %%i in (a.txt) do (
  4.     set n=%%~ni
  5.     REM set n=!str:/*=!
  6.     if !n! lss 100000 (
  7.         echo %%i-%%j
  8.     )
  9. ))>b.txt
复制代码
1

评分人数

TOP

方法二
  1. findstr /v "\/[0-9][0-9][0-9][0-9][0-9][0-9]" a.txt > b.txt
复制代码

TOP

万分感谢,经过测试!

再次感谢大哥 感谢论坛 感谢ccav

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3.     for /f "delims=-" %%i in ("%%~na") do (
  4.         set "str=%%i"
  5.         if "!str:~5!" == "" echo %%a
  6.     )
  7. ))>b.txt
  8. pause
复制代码

TOP

返回列表