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
相关产品推荐
相关产品推荐

