

タイトル通りですが、  
powershellを使って文字列"(ダブルクォーテーション)を削除したいです。

現状

[code]

    $s = $(get-count "c:¥work¥sample.txt")
    $s
    $s.trim(`"` )
    
[/code]

なのですが、["]を認識させることが出来ません。

どなたかよろしくお願い致します。


CC BY-SA 3.0
2017-04-05T09:02:43.310
33790
2017-04-06T06:16:58.017
2017-04-05T09:25:22.027
8000
21361
question
powershell
powershellを使って文字列"(ダブルクォーテーション)を削除したいです。


PowerShellでダブルクォートを含む文字列を書きたい場合は、

  * シングルクォートを使った文字列を使う：`'"'`
  * バッククォートでエスケープする：`"`""`

といった方法があります。バッククォートで囲む構文はありません。

で、例えば次のようになります。

[code]

    PS C:\> $s = '"foobar"'
    
    PS C:\> $s
    "foobar"
    
    PS C:\> $s.Trim('"')
    foobar
    
[/code]

参考 [文字列 - Windows PowerShell | ++C++; // 未確認飛行
C](http://ufcpp.net/study/powershell/string.html#string)

* * *

`Trim()` は文字列の両端で連続する文字を取り除くメソッドなので、文中の " を取り除きたい場合は `Replace()` や `-replace`
演算子（こちらは正規表現が使えます）を使います。

[code]

    PS R:\> 'a"b"c"'.Replace('"', '')
    abc
    
    PS R:\> 'a"b"c"' -replace '"', ''
    abc
    
[/code]

また Get-Contents で複数行のテキストを読み込む場合は配列になるので `foreach` を使いますが、直接 `Replace()` メソッドや
`-replace` 演算子を使っても同じ結果が得られます。

[code]

    PS R:\> $s
    "aa"
    bb"cc
    
    PS R:\> $s | foreach { $_.Replace('"', '') }
    aa
    bbcc
    
    PS R:\> $s.Replace('"', '')
    aa
    bbcc
    
[/code]


CC BY-SA 3.0
2017-04-05T09:43:25.550
33792
2017-04-06T06:16:58.017
2017-04-06T06:16:58.017
8000
8000
33790
answer