PowerShell脚本需求:提取CSV文件中OU=与||间的字符串
PowerShell脚本:提取CSV中指定OU名称
脚本实现
# 替换为你的CSV文件实际路径 $csvFilePath = "C:\your\file\path\data.csv" Get-Content -Path $csvFilePath | ForEach-Object { # 用正则匹配所有符合OU=xxx||格式的片段 $ouMatches = [regex]::Matches($_, 'OU=([^|]+)\|\|') foreach ($match in $ouMatches) { # 输出捕获到的OU名称部分 $match.Groups[1].Value } }
关键说明
Get-Content:逐行读取CSV文件内容(因为你的CSV每行是单个带引号的字符串,无需用Import-Csv解析)- 正则表达式
OU=([^|]+)\|\|:OU=:匹配固定前缀([^|]+):捕获所有非|的字符(即OU的名称部分)\|\|:匹配结尾的双竖线(转义是因为|在正则中是特殊字符)
- 遍历每个匹配结果,提取捕获组
[1]的内容,就是需要的OU名称
扩展:保存结果到文件
如果需要将提取结果保存到文本文件,可在脚本末尾追加输出重定向:
| Out-File -Path "C:\your\output\path\ou_names.txt" -Encoding utf8
内容的提问来源于stack exchange,提问作者renato cilento
相关产品推荐
相关产品推荐

