Powershell替换从Select-Object返回的部分字段

时间:2012-07-19 09:53:51

标签: powershell

我正在从Active Directory中提取字段并将其传输到.csv文件中,My Select-Object命令按名称返回字段。我的问题是这些字段中的一些包含回车符和换行信息,我想在将其导入.csv之前删除

示例:

Select-Object SamAccountName,displayName,info | ConvertTo-CSV -NoTypeInformation | 
Out-File -Append -FilePath $Filepath -Encoding unicode

如何在将'info'字段发送到.csv之前拦截并修改'info'字段?

感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式删除回车符和换行符。尝试下一个片段:

Select-Object -property SamAccountName, DisplayName, Info |
    % {
        $_.SamAccountName = [regex]::Replace($_.SamAccountName, "(`n|`r)+"," ", "Multiline");
        $_.DisplayName= [regex]::Replace($_.DisplayName, "(`n|`r)+"," ", "Multiline");
        $_.Info = [regex]::Replace($_.Info, "(`n|`r)+"," ", "Multiline");
        return $_;
    } | 
    ConvertTo-CSV -NoTypeInformation | 
    Out-File -Append -FilePath $Filepath -Encoding unicode