【PowerShell】テキストファイル内の文字列を置換する

PowerShellで
 ・テキストファイル内の文字列を置換
できます!

コード

ここでは例として、
 ・デスクトップ配下のテキストファイル「sample.txt」内の
 ・文字列「(株)」を「株式会社」へ置換
します。

テキストファイル「sample.txt」
テキストファイル「sample.txt」
テキストファイル「sample.txt」の内容
テキストファイル「sample.txt」の内容

テキストファイルだけでなく、CSVファイルでも置換できます。

# 対象ファイル
$targetFile = "C:\Users\user\Desktop\sample.txt"
# 置換前文字列
$beforeStr = "\(株\)"
# 置換後文字列
$afterStr = "株式会社"

$ws = New-Object -ComObject Wscript.Shell

try
{
    (Get-Content $targetFile -ErrorAction Stop) -creplace $beforeStr,$afterStr | Out-File -Encoding default $targetFile
    $ws.popup("置換に成功しました。")
}
catch
{
    $ws.popup("エラー : " + $PSItem)
}

以下を指定します。
※状況に応じて任意の値を指定してください。

・対象ファイル(2行目)
・置換文字列(4行目) ※「(」は記号のため「\」によりエスケープしています。
・置換文字列(6行目)

「Get-ChildItem」コマンドレットにより「対象ファイル」を取得します(12行目)。

演算子「-creplace」により置換します(12行目)。
※演算子「-creplace」による置換は、大文字小文字の区別します
大文字小文字の区別したくない場合は、演算子「-replace」を使用します。

「Out-File」コマンドレットにより置換後の内容を対象ファイルへ書き込みます(12行目)。
※文字化けしないように、オプション「-Encoding default」を付けます。

実行結果

テキストファイル内の文字列を置換できました。
※文字列「(株)」を「株式会社」へ置換できました。

実行結果①
実行結果①
実行結果②
実行結果②

参考

上記のコードで使用した以下の詳細は、公式サイトをご確認ください。

●Power Shellのコマンドレット「Get-Content」


●Power Shellの演算子「-creplace」


●Power Shellのコマンドレット「Out-File」

タイトルとURLをコピーしました