[ChatGPT]Windowsバッチファイルの作成を試す

スポンサーリンク

要望とその背景

Windowsで、任意のフォルダ配下の全ファイルに対して、一括で文字列置換を行いたい。
という要望を ChatGPT に投げてみました。

個人的には、PythonとかVBAとかでいいんだけど、ソフトウェアの利用が限られている環境で、要はWindowsのバッチファイルとして実行可能な形式が必要でした。

出力内容

@echo off
setlocal enabledelayedexpansion
set "search=検索文字列"
set "replace=置換文字列"
set "folder=C:\path\to\folder"

for /f "delims=" %%i in ('dir /b /s /a-d "%folder%\*.txt"') do (
    set "file=%%i"
    set "content="
    for /f "usebackq delims=" %%j in ("%file%") do (
        set "line=%%j"
        set "line=!line:%search%=%replace%!"
        set "content=!content! !line!"
    )
    echo(!content!>"%file%"
)

検証結果

  • 単純な文字列の置換では利用可能
  • 正規表現は使えない
  • エスケープシーケンスは使えない
     ※正規表現、エスケープシーケンスは ChatGPT に聞いても期待通りの回答が得られませんでした。(おそらく不可だけど、bashなどの記述を持ってきてそれっぽい回答を出してきていました。)

コメント

タイトルとURLをコピーしました