PowerShell Import-CSV“过滤掉空行”Export-CSV
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell Import-CSV“过滤掉空行”Export-CSV相关的知识,希望对你有一定的参考价值。
我正在导出所有AD用户帐户,格式化为按照管理所需的方式排序的CSV文件。他们希望按部门字段排序并删除所有未列出部门代码的帐户。
我拼凑了一个脚本来获取格式化的CSV文件:
Import-Module ActiveDirectory
Get-ADUser -filter * -properties Name, Title, Department, SamAccountName |
Select-Object GivenName, Surname, Title, Department |
Export-CSV -Path "\ServerSharefile.csv" -NoTypeInformation
'Filter only users with DEPARTMENT populated'
$BlankColumns = "Department"
Import-CSV \JXWFILEPRD01Les$file.csv |
Where-Object {
$line = $_
($BlankColumns | ForEach-Object{
![string]::IsNullOrEmpty(($line.$_.Trim('"')))
}) -notcontains $false
} | Export-CSV -Path "\ServerShareout.csv"
但是,当我导入CSV并删除我们不想要的行时,它会将输出溢出到控制台。我还没弄明白如何以一种有效的方式使用Export-CSV
。它要么出错,要么继续转储到控制台然后出错。
答案
您可以多次导入/导出并在开始时过滤:
Import-Module -Name ActiveDirectory
Get-ADUser -Filter 'Department -like "*"' -Properties Name,Title,Department,SamAccountName |
Select-Object -Property GivenName,Surname,Title,Department |
Sort-Object -Property Department |
Export-CSV -Path '\ServerSharefile.csv' -NoTypeInformation
另一答案
试试这个:
Import-Module ActiveDirectory
Get-ADUser -filter * -Properties Name,Title,Department,SamAccountName | where {![string]::IsNullOrWhiteSpace( $_.Department)} |
Select GivenName, Surname, Title, Department |
Export-CSV "\ServerSharefile.csv" -NoType
以上是关于PowerShell Import-CSV“过滤掉空行”Export-CSV的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Powershell Import-Csv 在此 CSV 文件上无法正常工作?