1

Active Directoryからフィールドを抽出し、それを.csvファイルにパイプしているのですが、MySelect-Objectコマンドはフィールドを名前で返します。私の問題は、これらのフィールドの一部に、.csvにパイプするに削除したいキャリッジリターンとラインフィードの情報が含まれていることです。

例:

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

.csvで起動する前に、「info」フィールドをインターセプトして修正するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

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
于 2012-07-19T10:35:50.440 に答える