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

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

Ответить
Настройки темы
CMD/BAT - Сравнение и замена в файлах .txt

Аватара для Deep2007

Старожил


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

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


Есть 2 файла: 1.txt и 2.txt (оба - ANSI), лежащие в одной папке.
Пример содержимого файла 1.txt:
Код: Выделить весь код
[TMainForm]
TabPages.0=Каталоги
TabPages.1=Категории
 
[STRINGS]
001=Неиспользованная кнопка
003=Ошибка при сохранении конфигурации
 
[TIPS]
001=...программа не бесплатна? Регистрируясь, вы помогаете автору в разработке новых версий программы, а также получаете доступ к использованию всех ее возможностей.
002=...вы можете настроить размер кнопок панели инструментов? Загляните в настройки и установите размер, более всего подходящий для вашего экрана.
 
[TLendingDisksForm]
NameLabel=На руках у /047 Взят у:
RadioAvailable=Доступен
Пример содержимого файла 2.txt (умышленно привел одинаковые строки):
Код: Выделить весь код
[TMainForm]
TabPages.0=Catalogs
TabPages.1=Categories
 
[STRINGS]
001=Unused button
003=Error saving config
 
[TIPS]
001=...this program is not free? By registering, you will support the shareware concept and help the author to develop newer, more advanced versions. You will also receive a registration code to unlock the program to its full potential.
002=...you can adjust size of buttons in a toolbar. Have a look in the program settings and resize them to fit your screen best.
 
[TLendingDisksForm]
NameLabel=Lent to /047 Borrowed from:
RadioAvailable=Available
Как видно, в файлах есть секции (например - [TMainForm], [TLendingDisksForm]). Ее имя всегда в [ ], и начинается с новой строки. Выходит, что в имени секции первый символ в строке - [, последний - ].
В секциях есть строки (напимер - TabPages.0=Catalogs, TabPages.1=Categories). Они тоже начинаются с новой строки и все написаны без переносов (в 1 строке).

Нужно, чтобы файл .cmd (лежит в этой же папке) нашел совпадающие по левой части строки, (все, что до символа = ), и если такая строка в обоих файлах есть - заменил бы правую часть этой строки в файле 2.txt, правой частью этой строки из 1.txt. Если такой строки одновременно в 2-х файлах нет - ничего не делать.

Максимальная длина имени секции (без знаков [ ]) - 18 символов. В правой части строк также встречаются символы [ ], но они не стоят в начале строки. Последняя строка в конце каждой секции - всегда пустая.

Если можно - помогите с написанием такого файла. Самому не хватит ума.

Отправлено: 15:52, 30-12-2009

 

Аватара для gora

Ушёл из жизни


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

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


Цитата Deep2007:
нашел совпадающие по левой части строки, (все, что до символа = ), и если такая строка в обоих файлах есть - заменил бы правую часть этой строки »
Очевидно сравнение должно быть по секционным? Ибо 001=Неиспользованная кнопка и 001=...программа не бесплатна? Регистрируясь, вы помогаете автору в разработке новых версий программы, а также получаете доступ к использованию всех ее возможностей. уже имею одинаковую левую часть в одном файле.
Цитата Deep2007:
В правой части строк также встречаются символы [ ] »
А спец. символы (скобки, %, ! <, > и т.д.) встречаются в тексте?

Отправлено: 16:04, 30-12-2009 | #2



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

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


Аватара для Deep2007

Старожил


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

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


Да, посекционным, т.к. в разных секциях встречаются строки с одинаковыми левыми частями.
Спецсимволы в строках есть (в правой части).

Отправлено: 16:59, 30-12-2009 | #3


Аватара для Deep2007

Старожил


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

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


Уважаемые участники форума! Таки помогите мне, сам не смогу сделать...

Отправлено: 15:56, 12-01-2010 | #4


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


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

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


Всем доброй поры суток.
Нужен .bat файл, который был заменял одни ИП-адреса на другие в файле hosts.

У меня есть файл, который добавляет ИП в файл:

----
if exist %systemroot%\SysWOW64 (
set hosts=%systemroot%\SysWOW64\drivers\etc\hosts
) else (
set hosts=%systemroot%\System32\drivers\etc\hosts
)
cacls %hosts% /E /G All:F
cacls %hosts% /E /G 'б_:F
attrib -s -r -h %hosts%
(echo.
echo #
echo 95.125.144.25 www.site1.com
echo 96.111.113.44 www.site2.com

)>>%hosts%
cacls %hosts% /E /R All
cacls %hosts% /E /R 'б_
ipconfig /flushdns
----

а как мне теперь заменить эти ИПшники на другие?

Отправлено: 19:08, 19-11-2010 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] FoxPro 2.6 Замена фрагментов текста в txt-файле Pashka Программирование и базы данных 7 18-01-2010 19:20
[решено] Вставить строчку из одного txt в оределённое место другого txt ZeroCrash AutoIt 7 13-07-2009 07:35
Замена одной фразы в разных файлах Punsher Программное обеспечение Linux и FreeBSD 3 11-03-2008 13:24
Пакетная замена в html-файлах y3ep Программное обеспечение Windows 7 11-06-2004 08:06
Сравнение файлов Guest Программирование и базы данных 6 24-04-2004 04:47




 
Переход