Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Замена текста между определенными символами

Новый участник


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

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


Добрый день!

Запускать на компах разрешено ТОЛЬКО *.bat файлы.
Есть файлик настроек XML содержащий 2 параметра, которые необходимо периодически менять.
1. Параметр находится между следующими символами ;KeyWord1=" и ";KeyWord2= (т.е. необходимо изменить значение KeyWord1)
2. Параметр находится между <Parametr> и </Parametr>

Вечерний серф по безкрайней паутине дал следующие результаты:
Код: Выделить весь код
@echo off

set folder=C:\test
set conf=test.xml
set NewKeyWord=NewKeyWord1

cd %folder%

setlocal enabledelayedexpansion

for /f "usebackq delims=" %%i in (%conf%) do (
	set LINE=%%i
rem не знаю как заменить значение KeyWord1 на NewKeyWord1
)

for /F "tokens=* delims=," %%n in (%conf%) do ( 
	set LINE=%%n 
	set LINE=!LINE:^<Parametr^>Enable^</Parametr^>=^<Parametr^>Disable^</Parametr^>!
	@echo !LINE!>>%temp%
)

endlocal
Помогите, пожалуйста, начинающему... Заранее спасибо.

Отправлено: 17:06, 24-04-2021

 

Ветеран


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

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


Цитата localmaster:
Запускать на компах разрешено ТОЛЬКО *.bat файлы.
Есть файлик настроек XML… »
Как именно запрещено остальное?
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:35, 24-04-2021 | #2



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

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


Новый участник


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

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


Цитата Iska:
Как именно запрещено остальное? »
не понимаю как данный вопрос относится к сути моего вопроса, но все же отвечу:

Существует ПО, которое по правилам которого запрещено запускать различные типы файлов, единственное что оставили для работы - выполнение скриптов типа *.bat. Выполнение скриптов PS заблокировано.

Отправлено: 20:53, 25-04-2021 | #3


Ветеран


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

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


localmaster, обычно к первому посту прикладывают образец файла, чтобы видеть его структуру и кодировку. Допускается-ли применение сторонних утилит для замены значений параметров?
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:24, 25-04-2021 | #4


Новый участник


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

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


Цитата sov44:
чтобы видеть его структуру и кодировку »
Обычный xml документ сплошная латиница. Структура:
Код: Выделить весь код
куча параметров
куча параметров
куча параметров
100500 параметров
<Parametr KeyWord="Key";KeyWord1="Key1!№%?*()-=+_";KeyWord2="Key2">
куча параметров
куча параметров
<Parametr>Enable</Parametr>
100500 параметров
Цитата sov44:
Допускается-ли применение сторонних утилит для замены значений параметров? »
Использование сторонних утилит не возможно.

Последний раз редактировалось localmaster, 26-04-2021 в 00:10.


Отправлено: 00:03, 26-04-2021 | #5


Ветеран


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

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


Уже видно, что это отнюдь не:
Цитата localmaster:
Обычный xml документ »
Видно не сильно нужно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:26, 26-04-2021 | #6


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата localmaster:
единственное что оставили для работы - выполнение скриптов типа *.bat. Выполнение скриптов PS заблокировано. »
Ну и маразм... извините.

А ps1 из-под bat можно запустить? Просто с xml работать из cmd - удовольствие сильно на любителя, а PS с этим хорошо справляется.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 09:58, 26-04-2021 | #7


Новый участник


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

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


Цитата DJ Mogarych:
Ну и маразм... извините. »
Живем с тем что есть...

Цитата DJ Mogarych:
А ps1 из-под bat можно запустить? »
К сожалению нельзя(

Цитата DJ Mogarych:
Просто с xml работать из cmd - удовольствие сильно на любителя, а PS с этим хорошо справляется. »
Согласен. Пытаюсь работать как с текстовым файлом.

Отправлено: 10:59, 26-04-2021 | #8


Ветеран


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

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


Цитата localmaster:
единственное что оставили для работы - выполнение скриптов типа *.bat »
а нельзя этому кому-то позвонить и сказать пусть сами на bat вытягивают информацию из
Цитата localmaster:
KeyWord1="Key1!№%?*()-=+_";KeyWord2="Key2"> »
при
Цитата localmaster:
100500 параметров »
я на bat такое бесплатно точно не стал бы делать и даже в этом случае тут не один раз надо общаться т.к. что-нибудь да где-нибудь вылезет и не пойдет.

Отправлено: 15:40, 26-04-2021 | #9


Новый участник


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

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


Цитата alpap:
я на bat такое бесплатно точно не стал бы делать »
Не знаю в чем проблема пропарсить документ любой длины поиском уникальной комбинации ключей KeyWord1 и KeyWord2.

Из того что нашел, пока понял что возможно для поиска необходимой строки использовать findstr
Код: Выделить весь код
for /f "delims=" %%i in ('
  findstr /irc:";KeyWord1="[^;]*";KeyWord2" %conf%
  ') do (
таким образом я вроде бы нашел строку, а что дальше делать, никак понять не могу.

Отправлено: 20:15, 26-04-2021 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - как удалить блок текста между символами ruslaw Скриптовые языки администрирования Windows 3 01-07-2015 00:43
Замена текста между двумя подстроками-границами, регулярные выражения в Perl Тишина Программирование в *nix 2 11-08-2014 18:59
CMD/BAT - Замена текста Fevzy Скриптовые языки администрирования Windows 9 28-04-2013 21:22
CMD/BAT - Поиск строки с определенными символами dima9069 Скриптовые языки администрирования Windows 13 26-12-2012 06:44
CMD/BAT - [решено] Замена текста между тегов vano42 Скриптовые языки администрирования Windows 5 09-08-2012 13:19




 
Переход