次のコマンドを使用して、バッチファイル内の文字列を置き換えることができます
set str="jump over the chair"
set str=%str:chair=table%
これらの行は正常に機能し、文字列「jump over the chair」を「jump over the table」に変更します。ここで、文字列内の単語「椅子」を何らかの変数に置き換えたいのですが、その方法がわかりません。
set Word=table
set str="jump over the chair"
??
何か案は?
!を使用できますが、ENABLEDELAYEDEXPANSIONスイッチを設定する必要があります。
setlocal ENABLEDELAYEDEXPANSION
set Word=table
set str="jump over the chair"
set str=%str:chair=!Word!%
次の小さなトリックを使用できます。
set Word=table
set str="jump over the chair"
call set str=%%str:chair=%Word%%%
echo %str%
そこにあるcall
は、変数展開の別のレイヤーを引き起こし、元の%
記号を引用する必要がありますが、すべてうまくいきます。