You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本需求:提取file.txt指定字段并生成指定格式输出

批处理提取文件指定字段需求

我有一个名为file.txt的文件,内容如下:

== EXAMPLE1 ==
   info www.example.com H1231 2 0 19128 XXX02 == EXAMPLE
   info www.example.com H1232 2 3 19107 XXX02 == EXAMPLE
   info www.example.com H1233 3 2 19307 XXX02 == EXAMPLE
   info www.example.com H1234 0 1 19407 XXX02 == EXAMPLE
   info www.example.com H1235 0 2 19507 XXX02 == EXAMPLE

当前使用的批处理脚本如下:

set "string1=abc"
set "file=file.txt"

for /f "delims=" %%a in ('findstr /i "\<%string1%\>" %file%') do set "print=%%a"
echo %print% > print.txt

需要生成如下格式的输出结果:

H1231   19128
H1232   19107
H1233   19307
H1234   19407
H1235   19507

解决方案

可以修改批处理脚本,直接提取每行中需要的第3个和第6个字段,同时跳过无关行:

方案1:跳过首行直接提取

set "file=file.txt"
> print.txt (
    for /f "tokens=3,6 skip=1" %%a in (%file%) do (
        echo %%a   %%b
    )
)

方案2:过滤info行后提取

如果文件中存在其他无关行,可先过滤出包含info的行再提取字段:

set "file=file.txt"
> print.txt (
    for /f "tokens=3,6" %%a in ('findstr /i "info" %file%') do (
        echo %%a   %%b
    )
)

关键说明

  • tokens=3,6:指定提取每行的第3个和第6个字段,对应目标输出的Hxxx和数字值
  • skip=1:跳过文件第一行的== EXAMPLE1 ==内容
  • 用括号包裹循环并直接重定向到print.txt,避免重复打开文件,提升效率

内容的提问来源于stack exchange,提问作者Noval Juniardi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 06:52:35