2012-07-19 82 views
1

我將活動目錄和管道中的字段提取到.csv文件中,我的選擇對象命令按名稱返回字段。我的問題是某些字段包含回車和換行信息我想前去除它管道進入該.csvPowershell替換從選擇對象返回的部分字段

例子:

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

我怎麼能截獲並修改「信息」字段在發射到.csv之前?

謝謝。

回答

2

你可以使用正則表達式去除回車符和換行符。嘗試下一個片段:

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 
+0

阿基姆您好,感謝的response.Not肯定發生了什麼事有,但我現在得到雲天化作爲輸出,只有一次 - 這是整個文檔的新內容,而不是3K線預期。 – Grimster 2012-07-19 11:45:13

+0

對不起,我會忘記添加'return $ _;'。現在嘗試snippet – Akim 2012-07-19 12:04:06

+0

我仍然收到相同的輸出。不用擔心,儘管我已經採取了添加一行來處理完成的文件以刪除我需要的信息。非常感謝您的幫助。 – Grimster 2012-07-19 14:58:09