如何使用 Windows 批处理脚本从文本文件搜索字符串并提取另一个字符串模式

如何使用 Windows 批处理脚本从文本文件搜索字符串并提取另一个字符串模式

考虑 out.txt 文件具有以下格式

Display Variable;

ID    NAME       value
===*==========*================
201  Variavle     07Dec2014

Display Variable12;

ID    NAME          value
===*==========*================
201  Variavle12     08Dec2014

Display Variable123;

ID    NAME       value
===*==========*================
201  Variavle123     09Dec2014

测试脚本

在批处理文件中,我们需要搜索变量、变量12和变量123,并将每个变量值返回到与变量同名的批处理文件。

SET Variavle=09Dec2014
SET Variavle12=08Dec2014
SET Variavle123=09Dec2014

请帮助我完成它。

答案1

@echo off
    setlocal enableextensions disabledelayedexpansion

    for /f "tokens=2-3" %%a in ('
        findstr /b /r /c:"[0-9]" "log.txt"
    ') do set "%%a=%%b"

    set Variav

for /f用于

  1. findstr对文件执行命令log.txt,搜索以数字开头的行

  2. 使用空格或制表符作为分隔符对行进行标记,并将行中的第二和第三个标记检索到可替换参数%%a(命令中指示的起始标记)和%%b(按字母顺序排列的下一个标记)中

对于找到的每一行,do都会执行该子句并定义变量。

最后set Variav仅包含将定义的变量输出到控制台。

相关内容