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

[文本处理] [已解决] 批处理如何提取txt文本每一行中含指定字符串的字段里数字最小的

本帖最后由 pcl_test 于 2016-7-22 21:59 编辑

我有个文本,几万行,每行都有US,有些行有两个以上US,想求一个批处理,要达到的目的:每行只有一个US,取数字小的。急用!!谢谢您!

示例:
EP1538234-A2; US2005153145-A1; JP2005187803-A; CN1629211-A; KR2005052991-A; KR634288-B1; JP4097648-B2
EP1538586-A2; US2005123706-A1; US7279209-B2
WO9325385-A; WO9325385-A1; AU9345317-A; DE4392791-T; US5573622-A; US5972140-A; JP2001501547-W

结果:
US2005153145
US7279209
US557362

[ 本帖最后由 lxh623 于 2009-4-17 15
1

评分人数

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

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.      set "str=%%a"&set "str=!str:-= !"
  4.      for %%b in (!str!) do (
  5.            set "var=%%b"
  6.            if  "!var:~,2!" equ "US" (
  7.                if not defined min  set "min=!var:~2!"
  8.                if !min! gtr !var:~2! set "min=!var:~2!"
  9.           )
  10.      )
  11.      echo US!min!&set "min="
  12. )
  13. pause>nul               
复制代码

[ 本帖最后由 batman 于 2009-4-17 10:47 编辑 ]
1

评分人数

***共同提高***

TOP

谢谢版主!
代码中,怎么没有保存到b.txt?请问,结果在哪里?

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3.   set "var=%%a" & set "var=!var:us=盘:\!" & set min=2147483647
  4.   for %%a in (!var:-^=.!) do (
  5.     if %%~da==盘: if %%~na lss !min! set min=%%~na
  6.   )
  7.   echo US!min!
  8. ))>b.txt
复制代码
1

评分人数

TOP

回复 3楼 的帖子

你在顶楼提问时说过要保存到b.txt?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2009-4-17 12:16 发表
你在顶楼提问时说过要保存到b.txt?

谢谢您!
我的确忘了存入b.txt。严格的批处理语言如同逻辑推理,一步一步严丝合缝。搞批处理的哥们也这样严谨认真。
不过建议关于文本修改或者在原文或者另建文件。

[ 本帖最后由 lxh623 于 2009-4-17 15:37 编辑 ]

TOP

返回列表