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

如何使用PowerShell按序号批量替换文本文档中的多行指定短语

解决方案

你可以在遍历文本前先初始化序号变量,匹配时对Test和Results分别处理,匹配完同一组的Results后再让序号自增即可,完整脚本如下:

# 初始化测试序号,从1开始
$testNumber = 1

Get-Content -Path C:\test-directory\Test-Text.txt | ForEach-Object {
    if ($_ -match 'Test\s*<>') {
        # 匹配到Test行,用当前序号替换
        $_ -replace 'Test\s*<>', "Test <This is for test $testNumber:>"
    }
    elseif ($_ -match 'Results\s*<>') {
        # 匹配到Results行,用当前序号替换
        $newLine = $_ -replace 'Results\s*<>', "Results <Values for test $testNumber:>"
        # 同一组处理完成,序号自增供下一组使用
        $testNumber++
        $newLine
    }
    else {
        # 其他行直接输出不修改
        $_
    }
} | Set-Content -Path C:\test-directory\New-Test-Text.txt

关键逻辑说明

  • 序号变量$testNumber在遍历循环外部初始化,作用域覆盖整个遍历过程,不会每次循环重置
  • 先匹配Test行,使用当前序号替换,暂不自增序号
  • 再匹配同组的Results行,使用相同序号替换,完成后序号自增,保证下一组的Test和Results使用新的序号
  • 正则中的\s*兼容Test和<>之间可能存在的多余空格,避免匹配失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:36:01