Bruce Wayne |
11-05-2013 20:40 2148238 |
Замена слова в строчках текстового файла
Доброе время суток!
Подскажите, пожалуйста, я столкнулся с такой проблемой: имеется код
Код:
for /f "tokens=*" %%a in ('more^<log.txt') do call :_replace %%a
:_replace
set i=%*
set i=%i:guid=7A30D018-A716-19FA-BFC1-08002BE10318%
pause
echo %i%>>new.txt
goto eof
:eof
Но дело в том, что слово guid нужно заменять всё время на разные значения, которые хранятся в перезаписываемой переменной %guid%, а вставить сюда именно переменную не удаётся никак. Я уже всё перепробовал, все обманки, но ничего не вышло... Возможно вообще такое? Хотелось бы оставить именно такой код, так как он лучше всего подходит по скорости, удобству и читаемости. Заранее спасибо!)
|
Bruce Wayne,
Пример
Код:
@echo off
setlocal enabledelayedexpansion
set "guid=test"
set "var=test_guid_test"
echo %var%
set var=!var:guid=%guid%!
echo %var%
|
Bruce Wayne |
11-05-2013 22:15 2148297 |
Foreigner, не подходит, замена не произойдёт, будет просто полное замещение строчки на данную переменную var, которая получается равной !var:guid=test!. Или я что-то не так понял? Что Вы имели в виду?
|
Bruce Wayne,
Обязательно включить отложенное расширение переменных
Код:
setlocal enabledelayedexpansion
И можно использовать переменную %guid% в конструкции подстановки:
Код:
set var=!var:replaced string=%guid%!
Но это не панацея, так как есть подводные камни, в случае если переменная %guid% содержит непечслужебные символы "%", "!" и "="
|
Bruce Wayne |
11-05-2013 22:39 2148316 |
Foreigner, спасибо большое! Всё работает!)
|
Время: 23:51.
© OSzone.net 2001-