【bat】バッチファイルでの文字列置換方法

バッチファイルで文字列を置換する方法を学ぶことで、Windows環境での自動化作業をさらに効率化できます。本記事では、基本的な置換方法から、PowerShellを使用した応用的な置換方法まで紹介します。

基本的な文字列置換

まず、バッチファイル内で簡単な文字列を置換する方法を紹介します。以下の例では、”Hello World” を “Hello Universe” に置換します。

@echo off
setlocal enabledelayedexpansion

set "original_string=Hello World"
set "search_string=World"
set "replace_string=Universe"

echo Original String: %original_string%

:: 置換処理
set "new_string=%original_string:%search_string%=%replace_string%"

echo New String: %new_string%

上記スクリプトでは、set コマンドを使用して文字列を置換しています。setlocal enabledelayedexpansion を使用することで遅延変数展開を有効にし、変数の値をリアルタイムで操作できるようにしています。

ファイル内の文字列置換

特定のファイル内の文字列を置換する場合、PowerShellを利用すると便利です。以下のスクリプトでは、example.txt 内の “World” を “Universe” に置換します。

@echo off
setlocal

set "file_path=example.txt"
set "search_string=World"
set "replace_string=Universe"

:: PowerShellを使ってファイル内の文字列を置換する
powershell -Command "(Get-Content %file_path%) -replace '%search_string%', '%replace_string%' | Set-Content %file_path%"

echo Replacement done.

このスクリプトでは、PowerShellのGet-ContentとSet-Contentコマンドを使用してファイル内容を読み込み、置換し、再度ファイルに書き込んでいます。これにより、より複雑な文字列置換も簡単に実現できます。

まとめ

バッチファイルでの文字列置換は、シンプルな方法からPowerShellを活用した応用的な方法まで、多岐にわたります。業務効率化の一環として、これらの技術をマスターしておくと非常に便利です。是非、実際の作業に取り入れてみてください。