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

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

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

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


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

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


Добрый день. Имеются ini файлы, все они лежат в одном месте (Пусть будет D:\test).
Как можно с помощью скрипта изменить сразу несколько строк во всех ini файлах?
Нужно поменять PostMark=536871936 на PostMark=1024 и DocVersion=RTM0099 на DocVersion=RTM003-13-17

Отправлено: 14:45, 23-09-2020

 

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


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

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


Цитата greg zakharov:
call:patch D:\test\имя_существующего_файла.ini »
тоже самое

может к скрипту добавить шаг с перекодировкой?

Отправлено: 19:00, 23-09-2020 | #11



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

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


Забанен


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

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


Попробуйте.

Отправлено: 21:13, 23-09-2020 | #12


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


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

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


а как этот шаг добавить? chcp не помогает

Отправлено: 21:18, 23-09-2020 | #13


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

fascinating rhythm


Moderator


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

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


Powershell
Код: Выделить весь код
$path = 'c:\temp\file.ini'
$ini = gc "$path" -Encoding oem

$ini -replace 'PostMark=536871936','PostMark=1024' `
-replace 'DocVersion=RTM0099','DocVersion=RTM003-13-17' |
Set-Content "$path" -Encoding oem

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

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

Отправлено: 22:06, 23-09-2020 | #14


Ветеран


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

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


romfus, упакуйте Ваш ini-файл в архив, каковой приложите к сообщению.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:22, 23-09-2020 | #15


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


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

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


Вложения
Тип файла: 7z 003444012677025978000h.7z
(729 байт, 2 просмотров)

Секунду

Последний раз редактировалось romfus, 24-09-2020 в 08:15. Причина: 1


Отправлено: 08:09, 24-09-2020 | #16


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


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

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


Вложения
Тип файла: 7z 003444012677025978000h.7z
(729 байт, 1 просмотров)

Прикрепил

Последний раз редактировалось romfus, 24-09-2020 в 08:13. Причина: 1


Отправлено: 08:12, 24-09-2020 | #17


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

fascinating rhythm


Moderator


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

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


Ну, мой скрипт корректно работает.

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


Отправлено: 12:24, 24-09-2020 | #18


Забанен


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

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


Цитата DJ Mogarych:
Ну, мой скрипт корректно работает.
То же могу сказать и про своё решение. Отличие лишь в том, что в PowerShell проще с кодировками, а в cmd нужно танцевать с бубном (чего делать не хочется). Проще PowerShell будет разве что sed:
Код: Выделить весь код
sed -i "/postmark/Is/^\(.*=\)\(.*\)/\11024/;/docversion/Is/^\(.*=rtm00\)\(.*\)/\13-13-17/Ig" input.ini
А ещё проще задача решается на Q:
Код: Выделить весь код
q "replace ig '^[postm,docve]*=,', [1024, 'RTM003-13-17']" < inpit.ini
И это также будет работать.

Отправлено: 17:17, 24-09-2020 | #19


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


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

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


Проблема в том что с помощью вашего скрипта, внутри ini файла все задваивается. Как будто он не только изменяет эти значения а еще и объединяет файлы в один или просто копируется все много раз. Попробовал с 1 файлом все получилось. Попробовал с множеством файлов все задвоилось внутри ini

Попробуйте ini файл скопировать, чтобы было 2 файла и скриптом выполнить. Получится задвоение внутри ini. По одному делает. Когда несколько делает но задваивает

Отправлено: 09:45, 25-09-2020 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как восстановить значки по умолчанию в .ini файлах Bai Microsoft Windows 2000/XP 16 13-03-2019 00:14
CMD/BAT - Поиск и замена строк в ini-файлах alex_frog Скриптовые языки администрирования Windows 10 25-11-2014 22:48
CMD/BAT - замена текста в нескольких файлах Alexander_88 Скриптовые языки администрирования Windows 7 03-09-2014 18:33
VBS/WSH/JS - Удаление строк в INI файлах gen0m.rsw Скриптовые языки администрирования Windows 5 27-06-2013 15:03
C/C++ - Поиск текста в файлах student_po Программирование и базы данных 6 04-09-2009 23:33




 
Переход