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

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

バッチファイルから
 ・Power Shellのコマンドレットを実行
することで実現します!
※演算子「-creplace」等により実現します。

コード

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

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

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

@echo off

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

rem PowerShellのコマンドレットを組み立て
set psCommand="(Get-Content %targetFile%) -creplace '%beforeStr%','%afterStr%' | Out-File -Encoding default %targetFile%"

rem PowerShellのコマンドレットを実行
powershell -NoProfile -ExecutionPolicy Unrestricted %psCommand%

rem 実行結果を確認
if %errorlevel% == 0 (
	echo 正常終了しました。戻り値:%errorlevel%
) else (
	echo 異常終了しました。戻り値:%errorlevel%
)

echo.

pause
exit

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

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

実行するPower Shellのコマンドレットを組み立てます(11行目)。
※コマンドレット「Get-Content」と演算子「-creplace」により置換をします。
※演算子「-creplace」による置換は、大文字小文字の区別します
大文字小文字の区別したくない場合は、演算子「-replace」を使用します。
※コマンドレット「Out-File」により、置換後の内容を対象ファイルへ書き込みます。
※文字化けしないように、オプション「-Encoding default」を付けます。

実行結果

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

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

参考①

上記のコードは以下の記事を参考にして作成しました。

参考②

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

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


●Power Shellの演算子「-creplace」


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

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