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

PowerShell遍历防火墙规则文本匹配指定参数的脚本问题求助

可行解决方案

你已经通过Delimiter "next"将每条规则拆分为独立段落,直接遍历这些段落做匹配即可,修复后的完整代码如下:

# 读取防火墙规则文件,以next作为分隔符拆分得到单条规则集合
$paragraphs = Get-Content C:\firewall_rules.txt -Delimiter "next"

foreach ($singleRule in $paragraphs) {
    # 跳过拆分产生的空内容段落
    if ([string]::IsNullOrWhiteSpace($singleRule)) {
        continue
    }
    # 判断当前规则是否包含目标参数
    if ($singleRule -like '*set ips-sensor*') {
        Write-Host "value found"
    }
    else {
        Write-Host "value not found"
    }
}

原代码问题说明

你之前的代码逻辑混淆了变量用途:拆分后的$paragraphs数组中每个元素本身就是完整的单条规则,不需要额外拆分换行,也无需提前过滤出存在/不存在的分组,直接遍历每个规则做匹配就能得到你要的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:45:02