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

[文本处理] 批处理如何提取文本中的最后一个数字串?

[复制链接]
发表于 2018-11-25 15:29:28 | 显示全部楼层 |阅读模式
文本a如下:

ab 111222 bc 222333 dg 350060 ac 112231 bd

要求取出112231字符到b文本 ,数字随机,位数固定是6位
发表于 2018-11-25 18:43:54 | 显示全部楼层
Z.bat
  1. @echo off
  2. set file1=A.txt
  3. set file2=B.txt
  4. powershell -Command "[System.IO.File]::WriteAllText('%~dp0%file2%',[regex]::Match([System.IO.File]::ReadAllText('%~dp0%file1%',[System.Text.Encoding]::Default),'\d{6}','RightToLeft').Value,[System.Text.Encoding]::Default)"
  5. pause
  6. exit /b
复制代码
发表于 2018-11-25 20:36:46 | 显示全部楼层
注释说明:不区分列只认最后一组纯数字
  1. for /f "delims=" %%i in ('type ".\1.txt"')do (
  2. set "$=%%i"&set "data="&set "#="&set "n="
  3. for /l %%n in (1,1,11)do if defined $ for /f "tokens=1,* delims=  " %%y in ("!$!")do (
  4.   set "#=%%y"&set "$=%%z"
  5.   for /l %%n in (0,1,9)do set "#=%%n!#!"
  6.   for /l %%n in (0,1,9)do set "#=!#:%%n=!"
  7.   if not defined # set "data=%%y"
  8. )
  9. if defined data (
  10.   for /l %%n in (0,1,6)do if /i not "!data:~%%n,1!"=="" set/a "n=%%n+1"
  11.   if /i "!n!"=="6" echo,!data!
  12. )
  13. )
复制代码
发表于 2018-11-26 08:28:02 | 显示全部楼层
  1. $ grep -Po "\d{6}(?= [a-zA-Z]{1,}$)" a.txt >b.txt
复制代码
 楼主| 发表于 2018-11-28 08:12:27 | 显示全部楼层
感谢几位. 已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 20:16 , Processed in 0.016755 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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