文字列を置換する - PowerShell

PowerShellで文字列を置換するコードを紹介します。

概要

PowerShellのスクリプト中で文字列を置換したい場合があります。 PowerShellで文字列を置換するには、文字列オブジェクト(変数)の Replace メソッドを利用します。

書式

次の書式を利用します。
[文字列オブジェクト].Replace( [置換したい文字列], [置換文字列] )

記述例

"ぺんぎんクッキー".Replace("クッキー", "キャラメル")
$textvalue.Replace("Penguin", "Duck")

例1

次のスクリプトファイルを作成します。
$strvalue="かるがもサブレ"

$strvalue = $strvalue.Replace("サブレ", "カヌレ")
Write-Host $strvalue

解説

$strvalue変数の文字列内の "サブレ" を "カヌレ" に置換し置換結果の文字列を$strvalue変数に代入します。 Write-Host コマンドで$strvalue変数の内容をコンソールに出力します。
$strvalue = $strvalue.Replace("サブレ", "カヌレ")
Write-Host $strvalue

実行結果

$strvalue 変数に代入した "かるがもサブレ" の「サブレ」が「カヌレ」に置換され、"かるがもカヌレ"がコンソールに出力されます。

例2

以下のスクリプトファイルを作成します。
$lines = Get-Content "c:\develop\product.txt"

foreach ($txt in $lines) {
  $rtxt = $txt.Replace("かるがも", "はげたか")
  $rtxt = $rtxt.Replace("アイス", "シャーベット")
  Write-Host $rtxt
}

解説

Get-Contentコマンドでテキストファイルを読み込み、$lines 変数に格納します。
$lines = Get-Content "c:\develop\product.txt"

それぞれの行の文字列に対して、「かるがも」を「はげたか」に置換し、「アイス」を「シャーベット」に置換します。 置換結果は$rtxt変数に代入し、置換した結果をWrite-Hostコマンドで出力します。
foreach ($txt in $lines) {
  $rtxt = $txt.Replace("かるがも", "はげたか")
  $rtxt = $rtxt.Replace("アイス", "シャーベット")
  Write-Host $rtxt
}

実行結果

以下のテキストファイルを作成します。"c:\develop\product.txt"に配置します。エンコーディングはShift-JISとします。


スクリプトを実行します。「かるがも」を「はげたか」に置換し、「アイス」を「シャーベット」に置換します。 文字列を置換した結果がコンソールに表示されます。

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2023-04-03
作成日: 2023-04-03
iPentec all rights reserverd.