Строковая замена в пакетном файле

Мы можем заменить строки в пакетном файле с помощью следующей команды

set str="jump over the chair"
set str=%str:chair=table%

Эти строки хорошо работают и меняют струну, "перепрыгивают через стул" для "перепрыгивания через таблицу". Теперь я хочу заменить слово "стул" в строке с некоторой переменной, и я не знаю, как сделать это.

set word=table
set str="jump over the chair"
??

Какие-либо идеи?

92
задан Péter Török 5 May 2010 в 10:48
поделиться

2 ответа

Вы можете использовать!, Но у вас должен быть установлен переключатель ENABLEDELAYEDEXPANSION.

setlocal ENABLEDELAYEDEXPANSION
set word=table
set str="jump over the chair"
set str=%str:chair=!word!%
74
ответ дан 24 November 2019 в 06:32
поделиться

Вы можете использовать следующий маленький трюк:

set word=table
set str="jump over the chair"
call set str=%%str:chair=%word%%%
echo %str%

Вызов call вызывает еще один уровень расширения переменной, что делает необходимым цитирование оригинальных знаков %, но в итоге все работает.

80
ответ дан 24 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: