バッチファイル | 一行または複数行のテキストから文字列を置き換える方法
バッチファイルで文章から文字列を置き換える方法について紹介しています。
一行のテキストから文字列を置き換える
対象のテキストが一行の場合は、以下の方法で文字列の置き換えが可能となっています。
@echo off
chcp 65001
setlocal enabledelayedexpansion
set "text=今夜は妙なきぶんだ"
set "old_str=きぶん"
set "new_str=気分"
set "result=!text:%old_str%=%new_str%!"
echo !result!
endlocal
pause
ファイル内のテキストから文字列を置き換える
ファイル内にある複数行のテキストから特定の文字列を置き換えるには、行毎に処理をしていきます。
@echo off
chcp 65001
setlocal enabledelayedexpansion
set "target_file_path=ファイルへのパス"
set "old_str=きぶん"
set "new_str=気分"
if exist "%target_file_path%" (
for /f "usebackq delims=" %%a in ("%target_file_path%") do (
set "line=%%a"
set "result=!line:%old_str%=%new_str%!"
echo !result!
)
) else (
echo ファイルが存在しませんでした。
)
endlocal
pause
置き換えたテキストデータを新しいファイルに保存する場合は以下のように記述できます。
@echo off
chcp 65001
setlocal enabledelayedexpansion
set "target_file_path=置き換え前のファイルへのパス"
set "output_file_path=置き換え後のファイルへのパス"
set "old_str=きぶん"
set "new_str=気分"
if exist "%target_file_path%" (
for /f "usebackq delims=" %%a in ("%target_file_path%") do (
set "line=%%a"
set "result=!line:%old_str%=%new_str%!"
echo !result!>> "%output_file_path%"
)
) else (
echo ファイルが存在しませんでした。
)
endlocal
pause
ディスカッション
コメント一覧
まだ、コメントがありません