コマンドプロンプトでファイル内の文字を置換する方法!

コマンドプロンプトでファイル内の文字を置換する方法!

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


目次[非表示]

  1. コマンドプロンプトでファイル内の文字を置換する方法

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

関連記事