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

Windows批处理脚本中如何打印搜索字符串的前两行

Windows批处理实现捕获指定Authadd条目对应的Principle和profile值

直接用以下批处理脚本即可实现需求:

@echo off
setlocal enabledelayedexpansion

set "prev1="
set "prev2="

for /f "delims=" %%a in (file.txt) do (
    set "current=%%a"
    if "!current:~0,8!"=="Authadd:" (
        if not "!current:CRT=!"=="!current" (
            echo !prev1!
            echo !prev2!
            echo.
        ) else if not "!current:DLT=!"=="!current" (
            echo !prev1!
            echo !prev2!
            echo.
        )
    )
    set "prev1=!prev2!"
    set "prev2=!current!"
)

endlocal

脚本说明

  1. 延迟变量扩展:启用enabledelayedexpansion是为了在for循环中实时读取变量的更新值。
  2. 行记录逻辑:用prev1和prev2两个变量保存最近读取的两行内容,始终维护一个两行的"队列"。
  3. 匹配判断:
    • 先检查当前行是否以Authadd:开头
    • 再判断行内是否包含CRT或DLT(通过字符串替换后对比原字符串实现包含判断)
  4. 输出结果:当匹配到目标Authadd行时,输出之前保存的prev1(对应Principle行)和prev2(对应profile行),可选的echo.用来在每组结果间加空行分隔。

如果需要将结果输出到文件(比如result.txt),只需把脚本中的echo !prev1!和echo !prev2!修改为:

echo !prev1! >> result.txt
echo !prev2! >> result.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:55:19