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

在PowerShell 5.1中提取文本文件内指定AP的BSS、ESS数据

PowerShell 5.1 处理AP文本文件并导出指定CSV

假设文本文件格式示例

先明确常见的AP记录格式(如果你的文件格式不同,可调整正则匹配规则):

AP name: AP-Office-01
BSS: aa:bb:cc:dd:ee:01
ESS: trustedwifi

AP name: AP-Lobby-01
BSS: aa:bb:cc:dd:ee:02
ESS: guest

AP name: AP-Storage-01
BSS: aa:bb:cc:dd:ee:03
ESS: internalwifi

解决方案代码

# 定义需要筛选的ESS值
$targetESS = "trustedwifi", "guest"
# 指定要处理的文本文件路径(可替换为你的目录或文件列表)
$inputFiles = Get-ChildItem -Path "C:\AP_Files\*.txt"
# 存储结果的数组
$results = @()

foreach ($file in $inputFiles) {
    # 读取文件内容,按空行分割成单个AP记录
    $apRecords = (Get-Content -Path $file.FullName -Raw) -split '(?m)^\s*$' | Where-Object { $_ -match '\S' }
    
    foreach ($record in $apRecords) {
        # 用正则提取AP name、BSS、ESS字段
        $apName = [regex]::Match($record, 'AP name:\s*(.*)').Groups[1].Value.Trim()
        $bss = [regex]::Match($record, 'BSS:\s*(.*)').Groups[1].Value.Trim()
        $ess = [regex]::Match($record, 'ESS:\s*(.*)').Groups[1].Value.Trim()
        
        # 只保留目标ESS的记录
        if ($targetESS -contains $ess) {
            $results += [PSCustomObject]@{
                "AP Name" = $apName
                "BSS"     = $bss
                "ESS"     = $ess
                "Source File" = $file.Name # 可选:添加来源文件名
            }
        }
    }
}

# 导出为CSV文件(路径可自定义)
$results | Export-Csv -Path "C:\AP_Files\Filtered_APs.csv" -NoTypeInformation -Encoding UTF8

关键说明

  • 文本格式适配:如果你的AP记录不是按空行分隔,或者字段名不同(比如"AP Name"而非"AP name"),只需调整-split的分隔符和正则表达式中的字段匹配部分。
  • 正则匹配优化:如果BSS是严格的MAC地址格式,可把BSS的正则改为BSS:\s*([0-9a-fA-F:]{17})来精准匹配。
  • PowerShell 5.1兼容:代码完全基于5.1语法编写,无需额外模块。
  • 编码处理:导出CSV时指定-Encoding UTF8避免中文乱码(如果你的AP名称包含中文)。

另一种常见格式处理(每行一条完整记录)

如果你的文本文件是每行包含所有字段,比如:

AP-Office-01,aa:bb:cc:dd:ee:01,trustedwifi
AP-Lobby-01,aa:bb:cc:dd:ee:02,guest
AP-Storage-01,aa:bb:cc:dd:ee:03,internalwifi

可使用更简洁的代码:

$targetESS = "trustedwifi", "guest"
Get-Content -Path "C:\AP_Files\*.txt" | ForEach-Object {
    $fields = $_ -split ','
    if ($targetESS -contains $fields[2].Trim()) {
        [PSCustomObject]@{
            "AP Name" = $fields[0].Trim()
            "BSS"     = $fields[1].Trim()
            "ESS"     = $fields[2].Trim()
        }
    }
} | Export-Csv -Path "C:\AP_Files\Filtered_APs.csv" -NoTypeInformation -Encoding UTF8

内容的提问来源于stack exchange,提问作者joe williams III

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:44:51