Board logo

标题: [文本处理] 批处理如何利用通配符的方式截取txt部分字段,并生成新的TXT文件 [打印本页]

作者: alick    时间: 2022-4-9 09:49     标题: 批处理如何利用通配符的方式截取txt部分字段,并生成新的TXT文件

本帖最后由 alick 于 2022-4-9 09:55 编辑

各位老师

因工作需求,要将A.txt文件中特别字符串全部截取出来,并生成新B.TXT(B.txt内数据按列存放,每一行为一组数据,请老师帮帮忙

A.TXT文件内容如下:(需要提取QRDD37B????字段,注:QRDD37B为固定码,????为变量部分)
DATA\SZRSS-B37-gog?QRDD37B0017C150735.txt
DATA\SZRSSR027-B37-gogQRDD37B0018-150908.txt
DATA\SZRR027-B37-gog\QRDD37B0019^151042.txt
DATA\SZRSSR027-B37-gog\QRDD37B0020%151215.txt
......
作者: qixiaobin0715    时间: 2022-4-9 10:18

本帖最后由 qixiaobin0715 于 2022-4-9 10:20 编辑

回复 1# alick
将代码另存为ANSI编码文件:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     set "str=%%a"
  5.     set "str=!str:*QRDD37B=!"
  6.     if not "!str!"=="%%a" echo,QRDD37B!str:~,4!
  7. ))>b.txt
复制代码

作者: alick    时间: 2022-4-9 10:48

回复 2# qixiaobin0715


完美,太感谢qixiaobin0715老师的帮助了
作者: Batcher    时间: 2022-4-9 11:07

回复 1# alick
  1. @echo off
  2. cd /d "%~dp0"
  3. powershell -c "gc A.txt | ForEach-Object{if($_ -match 'QRDD37B.{4}'){$matches[0]}}" > B.txt
复制代码

作者: alick    时间: 2022-4-10 19:05

回复 4# Batcher


    非常感谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2