Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена слова в строчках текстового файла

Ответить
Настройки темы
CMD/BAT - [решено] Замена слова в строчках текстового файла

Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


Доброе время суток!

Подскажите, пожалуйста, я столкнулся с такой проблемой: имеется код

Код: Выделить весь код
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%, а вставить сюда именно переменную не удаётся никак. Я уже всё перепробовал, все обманки, но ничего не вышло... Возможно вообще такое? Хотелось бы оставить именно такой код, так как он лучше всего подходит по скорости, удобству и читаемости. Заранее спасибо!)

Отправлено: 20:40, 11-05-2013

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Bruce Wayne,

Пример
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set "guid=test"
set "var=test_guid_test"

echo %var%

set var=!var:guid=%guid%!

echo %var%
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:04, 11-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


Foreigner, не подходит, замена не произойдёт, будет просто полное замещение строчки на данную переменную var, которая получается равной !var:guid=test!. Или я что-то не так понял? Что Вы имели в виду?

Отправлено: 22:15, 11-05-2013 | #3


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Bruce Wayne,
Обязательно включить отложенное расширение переменных
Код: Выделить весь код
setlocal enabledelayedexpansion
И можно использовать переменную %guid% в конструкции подстановки:
Код: Выделить весь код
set var=!var:replaced string=%guid%!
Но это не панацея, так как есть подводные камни, в случае если переменная %guid% содержит непечслужебные символы "%", "!" и "="
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:35, 11-05-2013 | #4


Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


Foreigner, спасибо большое! Всё работает!)

Отправлено: 22:39, 11-05-2013 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена слова в строчках текстового файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Изменение текстового файла SANIOK_AV Скриптовые языки администрирования Windows 0 09-11-2012 11:52
CMD/BAT - Правка текстового файла mxm199 Скриптовые языки администрирования Windows 9 04-07-2012 14:58
CMD/BAT - [решено] Поиск в последних 15 строчках txt файла maestro-ussr Скриптовые языки администрирования Windows 3 29-11-2011 21:00
CMD/BAT - [решено] Разбивка текстового файла файла Seryoga204 Скриптовые языки администрирования Windows 1 04-10-2010 21:19
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28




 
Переход