cmdバッチを利用して、ttlファイルのpasswordを変更しようとしてます。
下記のコードで問題なく普通のの数字とか文字には変更できますが、!が入るとこれを認識できません。
いろいろ調べてsetlocal enabledelayedexpansionの処理でfor文が!を変数に認識してしまうことまではわかりましたが
これをどう修正すればいいかおしえてください。
ECHO +-------------------------------------------------------+
ECHO new password
ECHO +-------------------------------------------------------+
SET INPUT_STR2=
SET /P INPUT_STR2=
set BEFORE_STRING=Root!1Xpp
set AFTER_STRING=%INPUT_STR2%
set INPUT_FILE=123.ttl
set OUTPUT_FILE=12333.ttl
for /f "delims=" %%a in (%INPUT_FILE%) do (
set line=%%a
setlocal enabledelayedexpansion
(echo !line:%BEFORE_STRING%=%AFTER_STRING%!)>>%OUTPUT_FILE%
)
endlocal
結果
123->123に変更できる
123!->123に変更していまう
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/28 12:24
2022/01/29 04:04