
Windowsのコマンドプロンプトを使用して、テキストファイルなどのファイル内の文字を置換したいと思ったことはありませんか?バッチファイルを作成して、置換を行ってみましょう。この記事では、コマンドプロンプトでファイル内の文字を置換する方法をご紹介していきます。
コマンドプロンプトでファイル内の文字を置換する方法

それでは、コマンドプロンプトでファイル内の文字を置換する方法を説明します。ファイル内の文字をコマンドプロンプトを使用して置換するには、置換用のバッチファイルを作成しましょう。この例では、画像の「メリークリスマス」の文字列を「メリクリ」に置換していきます。

メモ帳アプリなどのテキストエディタを起動して、下記のコマンドを入力していきます。簡単に説明すると、「memo.txt」ファイル内の「メリークリスマス」を「memo2.txt」を作成して「メリクリ」に置換するように指定しています。また、「memo2.txt」がすでに存在している場合はmemo2.txtファイルの削除を行います。
コマンドの入力が完了したら、「ファイル」→「名前を付けて保存」からファイルの拡張子を「.bat」に変更して保存しましょう。これで、文字列を置換するバッチファイルが作成できます。
@echo off rem 「memo2.txt」ファイルが既に存在している場合は削除を行う if exist memo2.txt del memo2.txt rem 以下の「for」ループ内で変数を変化させるための宣言 setlocal enabledelayedexpansion rem 「for」ループで「file.txt」ファイルの内容を1行ずつ取得して rem 「メリークリスマス」を「メリクリ」に置換する for /f "delims=" %%a in (memo.txt) do ( rem 変数「line」にファイル内容を一行ずつ代入する set line=%%a rem 変数「line」内の「メリークリスマス」を「あけましておめでとう」に置換し、 rem 「memo2.txt」ファイルに書き込む echo !line:メリークリスマス=メリクリ! >> memo2.txt ) endlocal

作成したバッチファイルを実行することで「memo2.txt」ファイルが作成され、ファイル内の「メリークリスマス」の文字列が「メリクリ」に置換されていることが確認できます。

続いては、複数の文字を置換する方法です。画像例の文章の「man」を「boys」に、「is」を「are」に置換するバッチファイルを作成します。

下記のコマンドをメモ帳アプリなどのテキストエディタに入力して、バッチファイルとして保存してから実行しましょう。
@echo off rem 「memo2.txt」ファイルが既に存在している場合、削除する if exist memo2.txt del memo2.txt rem 以下の「for」ループ内で変数を変化させるための宣言 setlocal enabledelayedexpansion rem 変数「line」内の「man」を「boys」に置換、 rem また「is」を「are」に置換し、 rem 「memo2.txt」ファイルに書き込む for /f "delims=" %%a in (memo.txt) do ( set line=%%a set line=!line:man=boys! set line=!line:is=are! echo !line! >> memo2.txt ) endlocal

これで、文章内の「man」を「boys」に、「is」を「are」に置換することができました。以上が、コマンドプロンプトでファイル内の文字を置換する方法の説明となります。