Powershellでダブルクォーテションで囲まれた文字列を置換したい


csvファイルをタブ区切りでsqlserverにbulkinsertしたいのですが、文字列にダブルクォーテーションで囲まれたカラムが混在しています。  
さらにそのダブルクォーテーション付きのカラムにはカンマもあります。  
普通であればダブルクォーテーションを削除してカンマをタブに変換すればいいのですが上記がネックとなります。  
そのため前処理として、

  1. カンマを別の値（被らなければなんでもよい）に置換
  2. ダブルクォーテションンを削除
  3. カンマをタブに変換

をしたいです。

文字列  
1,12345,"aaa,bbb",56789,"aaa",34567

例えば、`"aaa,bbb"`のカンマだけを`x`に置換して`"aaaxbbb"`にしたいです。

[code]

    $data = Get-Content .\test.csv | ForEach-Object { $_ -replace "",""}
    
[/code]

`-replace`以降の指定の仕方がわかりません。

よろしくお願いします。




コメントでも触れられているように一旦`Import-Csv`で読みこんだ方が確実かと思います。  
その後に生成された各オブジェクトのプロパティの値を加工して結合するだけです。

[code]

    Import-Csv .\test.csv -Header (1..6) | foreach { $_.psobject.Properties.Value.Replace(",", "x") -join "`t" }
    
[/code]

カンマのまま残すのであれば置換する必要もないので以下でいいです。

[code]

    Import-Csv .\test.csv -Header (1..6) | foreach { $_.psobject.Properties.Value -join "`t" }
    
[/code]




コメントでも触れられているように一旦`Import-Csv`で読みこんだ方が確実かと思います。  
その後に生成された各オブジェクトのプロパティの値を加工して結合するだけです。

[code]

    Import-Csv .\test.csv -Header (1..6) | foreach { $_.psobject.Properties.Value.Replace(",", "x") -join "`t" }
    
[/code]

カンマのまま残すのであれば置換する必要もないので以下でいいです。

[code]

    Import-Csv .\test.csv -Header (1..6) | foreach { $_.psobject.Properties.Value -join "`t" }
    
[/code]

