找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 291|回复: 5

[文本处理] bat 提取文本指定符号()内的数字??

[复制链接]
发表于 2026-4-11 17:35:25 | 显示全部楼层 |阅读模式
bat 提取文本指定符号()内的数字???

文本a.txt 用bat 提取文本指定符号()内的数字生成文本b.txt

文本a.txt
跨境支付板块快速拉升,四方精创(300468)涨超10%,拉卡拉(300773)、翠微股份(603123)、新国都(300130)、东信和平(002017)纷纷上扬。
CPO、光模块等算力硬件股午后短线拉升,源杰科技(688498)涨超10%,永鼎股份(600105)、东山精密(002384)、长光华芯(688048)、生益电子(688183)
电池产业链盘初大幅拉升,国轩高科(002074)、豪鹏科技(001283)、信宇人(688573)涨停,欣旺达(300207)涨超10%,天华新能(300390)、石大胜华(603026)、鹏辉能源(300438)、力佳科技、南都电源(300068)跟涨。


文本b.txt
300468
300773
603123
300130
002017
688498
600105
002384
688048
688183
002074
001283
688573
300207
300390
603026
300438
300068
发表于 2026-4-11 20:00:22 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-4-12 14:11 编辑
  1. @echo off &setlocal &(for /f "delims=" %%a in (a.txt) do (
  2.    set "s=%%a" &setlocal enabledelayedexpansion
  3.    set "s=!s:(=;(!" &set "s=!s:)=);!"
  4.    for %%x in (!s!) do (
  5.       set "x=%%x"
  6.       if "!x:~,1!"=="(" if "!x:~-1!"==")" echo,!x:~1,-1!)
  7.    endlocal ))>b.txt
  8. type b.txt &pause&exit/b
复制代码
发表于 2026-4-11 20:38:28 | 显示全部楼层
再给一个递归版本,由楼主自选吧

  1. @echo off &setlocal &(for /f "delims=" %%a in (a.txt) do (
  2.    set "s=%%a" &setlocal enabledelayedexpansion
  3.    call :#$ &endlocal ))>b.txt
  4. type b.txt &pause&exit/b
  5. :#$
  6.    if not defined s (exit/b) else if "!s:*(=!" == "!s!" exit/b
  7.    for /f "tokens=2* delims=()" %%x in ("!s!") do set "s=%%y" &echo,%%x
  8.    goto :#$
复制代码
 楼主| 发表于 2026-4-11 22:04:37 | 显示全部楼层
aloha20200628 发表于 2026-4-11 20:38
再给一个递归版本,由楼主自选吧

这个最好,另外一个有点小问题,谢谢  非常感谢
发表于 2026-4-12 14:19:26 | 显示全部楼层
qi38338 发表于 2026-4-11 22:04
这个最好,另外一个有点小问题,谢谢  非常感谢

    一楼代码可能会因文本行中还包含 ; 以外的分隔符及其后的数字导致误判
    根据被认可的二楼代码逻辑现已订正了一楼代码。

发表于 6 天前 | 显示全部楼层
  1. powershell -ExecutionPolicy Bypass "[regex]::Matches((gc a.txt),'(\d+)(?=\))').Value" >b.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-4-21 16:31

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表