|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Парсер строк TXT файла |
|
CMD/BAT - [решено] Парсер строк TXT файла
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать Цитата:
|
||
Отправлено: 01:10, 15-10-2011 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Уточните задание, вам нужно сохранить именно вторую и третью строки любого txt-файла, или строки, в которых есть заданные слова?
|
Отправлено: 02:46, 15-10-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Anonymоus, по заданным словам.
P.S. Если не затруднит, можно еще пример, как по заданным словам удалить строки? |
Отправлено: 03:37, 15-10-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Flayer:
|
|
Отправлено: 05:53, 15-10-2011 | #4 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Примерно такого вида, взял три слова.
Пример слов: Цитата:
Цитата:
|
|||
Последний раз редактировалось Flayer, 15-10-2011 в 07:23. Отправлено: 06:59, 15-10-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Flayer, ага. Теперь ясно.
Пусть «0001.txt» — исходный файл: Меня трудно приручить Не легко остановить Можно понять Со мной можно дружить Приятно общаться Невозможно забыть Я вас не заставляю Тогда: даст в файле «0003.txt» следующий результат: Flayer, это оно? Для удаления (точнее, для фильтрации строк, не содержащих целевых слов) — добавить параметр «/v»: |
Отправлено: 07:27, 15-10-2011 | #6 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Iska, не оно.
Не из файла слова брать, через переменную set. |
Отправлено: 07:32, 15-10-2011 | #7 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Flayer, вот вариант для выделения строк, содержащих заданные слова
@Echo Off :: Текстовый файл (и батник, и файл должны быть в одной кодировке - 1251 или 866) Set File=file.txt :: Слова для поиска Set Words=легко,понять,общаться :Loop For /F "tokens=1,* delims=," %%A In ("%Words%") Do ( If "%%A"=="" (Exit) Findstr /I "%%A" %file%>>out_%file% Set Words=%%B GoTo Loop ) @Echo Off SetLocal EnableDelayedExpansion :: Текстовый файл (и батник, и файл должны быть в одной кодировке - 1251 или 866) Set File=file.txt :: Слова, которые НЕ должны содержаться в генерируемом файле Set Words=легко,понять,общаться Set TotalWords=1 Call :Check For /F "tokens=*" %%S In (%File%) Do ( Set ContainWords=false Set String=%%S For /L %%A In (1,1,%TotalWords%) Do ( Echo !String!|Findstr "!Word%%A!">nul&& Set ContainWords=true ) If !ContainWords!==false (Echo %%S>>out_%File%) ) Exit :Check For /F "tokens=1,* delims=," %%A In ("%Words%") Do ( If "%%A"=="" (Exit /B) Set /A TotalWords+=1 Set Word%TotalWords%=%%A Set Words=%%B GoTo Check ) Set /A TotalWords-=1 Exit /B Хотя не пойму, чем вам не угодил вариант Iska с файлом - важен ведь результат, а не метод. |
Последний раз редактировалось Anonymоus, 15-10-2011 в 09:24. Отправлено: 09:14, 15-10-2011 | #8 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Anonymоus, спасибо. Еще такой вопрос, с первым кодом только почему-то сохраняются две строки.
Цитата:
Цитата:
Цитата:
|
|||
Отправлено: 09:41, 15-10-2011 | #9 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Flayer, я же специально указал, сохраняйте в кодировке 866 и текст, и скрипт. Подозреваю, что проблема в букве "щ", когда я тестировал с кодировкой 1251 - тоже последняя строка не писалась в создаваемый файл, когда убрал - все в порядке стало. С 866 нормально всё.
|
Отправлено: 09:44, 15-10-2011 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Печать последних 10 строк из txt файла. | valen | Скриптовые языки администрирования Windows | 9 | 01-02-2016 11:31 | |
CMD/BAT - Удалить несколько строк из файла | GhostKU | Скриптовые языки администрирования Windows | 1 | 01-09-2011 18:40 | |
CMD/BAT - [решено] Вставка строк в конкретные строки (txt) | alexey_vf | Скриптовые языки администрирования Windows | 2 | 06-06-2011 14:58 | |
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. | OSArev | Скриптовые языки администрирования Windows | 2 | 30-01-2011 11:58 | |
CMD/BAT - [решено] Разработать программу которая будет считать кол-во символов,строк,слов в .txt | klenb | Скриптовые языки администрирования Windows | 10 | 18-05-2010 15:19 |
|