1. ホーム
  2. batch-file

[解決済み] Windowsのバッチファイルで部分文字列を置換する方法

2023-07-02 03:37:21

質問

Windowsでバッチファイルを使用して、ファイルから読み込んで文字列=を置換する方法を教えてください。 bath を含むファイルから bath Abath Bbath XYZbathABC という文字列で hello のように出力されます。 hello Ahello Bhello XYZhelloABC

どのように解決するのですか?

からの展開 アンドレイ・M そして、ファイルから、たとえ複数行からなるファイルであっても、これを行うことができます。

@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "INTEXTFILE=test.txt"
set "OUTTEXTFILE=test_out.txt"
set "SEARCHTEXT=bath"
set "REPLACETEXT=hello"

for /f "delims=" %%A in ('type "%INTEXTFILE%"') do (
    set "string=%%A"
    set "modified=!string:%SEARCHTEXT%=%REPLACETEXT%!"
    echo !modified!>>"%OUTTEXTFILE%"
)

del "%INTEXTFILE%"
rename "%OUTTEXTFILE%" "%INTEXTFILE%"
endlocal

EDIT

David Nelsonさん、ありがとうございます。スクリプトを更新しましたので、ハードコードされた値を持つことはなくなりました。