GCRaistlin
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору korosya Запятая, точка с запятой, табуляция - такие же полноправные разделители, как и пробел. Соответственно, их тоже нужно временно заменять. Обратите внимание еще на один момент: если <str> содержит окавыченные Код: , ваша команда FOR вылетит. Нужно опять же использовать delayed expansion для str'ов. brRamires Не пропадания. Для указанного test.cmd выполните Код: Для многократной модификации вовсе не обязательно постоянно держать включенным delayed expansion. Более того, оно вам не позволит сделать замену подстроки, содержащей "!", и вызовет ошибки при использовании FOR, если FOR-переменные содержат "!". Код: @echo off set A=foobar set B=bar setlocal enabledelayedexpansion for /f "delims=" %%A in ("!A:%B%=!") do ( endlocal set A=%%A ) echo %A% set A=foo!bar! set B=!bar! call set A=%%A:%B%=%% echo %A% | Несмотря на лаконичность второго варианта, это - тормозной костыль, который может использоваться не со всеми командами (в частности, не будет работать с FOR и IF), поэтому прибегать к его использованию стоит только тогда, когда без него не обойтись.
---------- Magically yours Raistlin |
|