1

文字列、検索、置換の 3 つの変数があります。%string% の %search% を %replace% に置き換えたいです。

これは機能しますが、難しい文字が必要です。

SET modified=%string:morning=evening%

これはフォーラムでの回答のようですが、機能しません。行全体を %modified% に格納するだけです

SET modified=!string:%search%=%replace%!

4

1 に答える 1

1

!フォーマットは遅延展開を行っています。変数%はすぐに展開されますが、!変数は必要な場合にのみ展開されます。これはバッチ ファイルでのみ機能すると思います。そのため、コマンド ラインで直接実験している場合、バッチ ファイルを実行している場合と同じ動作は得られません。

!次のように、表記法を使用する前に、バッチ ファイルで遅延展開を有効にしてください。

SETLOCAL ENABLEDELAYEDEXPANSION
SET string=This morning
SET search=morning
SET replace=evening
SET modified=!string:%search%=%replace%!
ECHO %modified%
ENDLOCAL

これは反響しThis eveningます。

于 2013-03-11T03:37:15.663 に答える