PowerShell导出CSV时如何移除竖线两侧的空格?
解决AD用户导出CSV中Groups列竖线两侧空格问题
从源头修改导出脚本(推荐)
找到脚本中拼接Groups列的代码,通常是带空格的拼接写法导致的问题,直接调整拼接逻辑即可:
情况1:仅去掉拼接时的固定空格
如果原代码是:
Groups = "$($user.Company) | $($user.Department)"
改成不带空格的拼接:
Groups = "$($user.Company)|$($user.Department)"
情况2:同时清理字段本身的首尾空格
如果AD用户的Company或Department字段本身可能存在首尾空格,先清理再拼接:
Groups = "$($user.Company.Trim())|$($user.Department.Trim())"
事后处理已导出的CSV文件
如果已经导出了带有空格的CSV,无需重新跑脚本,用PowerShell批量处理:
# 替换路径为你的实际文件路径 $originalCsv = "C:\ADUsers.csv" $processedCsv = "C:\ADUsers_处理后.csv" Import-Csv -Path $originalCsv | ForEach-Object { # 移除竖线两侧的所有空格 $_.Groups = $_.Groups -replace '\s*\|\s*', '|' $_ } | Export-Csv -Path $processedCsv -NoTypeInformation -Encoding UTF8
说明:\s*\|\s*是正则表达式,会匹配竖线前后任意数量的空格(包括0个),统一替换成无空格的竖线。
注意事项
- 导出时添加
-NoTypeInformation避免生成多余的类型信息行,防止导入系统出错 - 用
-Encoding UTF8确保CSV编码兼容绝大多数系统,避免中文乱码
内容的提问来源于stack exchange,提问作者user22694243
相关产品推荐
相关产品推荐

