|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование нескольких строк текста в файл |
|
|
CMD/BAT - [решено] Копирование нескольких строк текста в файл
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать Имеем огромный лог-файл.
Необходимо командой finfstr найти определенную строку и скопировать ее содержимое в файл плюс 5 строчек после нее. И так по всему файлу (таких блоков много). Как это можно сделать через cmd? |
|
Отправлено: 11:45, 13-07-2011 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата delure:
Какова максимальная длина строки? (FINDSTR имеет ограничение на длину обрабатываемых строк) Цитата delure:
P.S. желательно привести алгоритм поиска строк + кусок лога с вхождением пары искомых блоков (само собой, в тегах CODE) |
||
Отправлено: 12:04, 13-07-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Цитата amel27:
Пример куска лог-файла, который нужно искать (всегда начинается с NUMBER + 5 строк ниже): Алгоритм: ищем строку, начинающуюся с "NUMBER" и копируем ее в файл плюс еще 5 строк после нее. Нужно скопировать в файл все такие блоки. |
||
Отправлено: 12:41, 13-07-2011 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата delure:
|
|
Отправлено: 14:17, 13-07-2011 | #4 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Спасибо.
|
|
Отправлено: 15:54, 13-07-2011 | #5 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Помогите. Нужно тоже самое, только копировать эту строку и на одну выше.
(SetLocal EnableDelayedExpansion set/a $ai=-1 for /f "usebackq delims=" %%a in ("file.log") do @(set "$a=%%a" if "!$a:~,6!"=="NUMBER" set/a $ai=5 if !$ai! geq 0 set/a $ai-=1& echo:!$a!) EndLocal)>"file.out" поясните, если не трудно что тут что значит. $ai=-1 - почему -1? if "!$a:~,6!" - это количество символов, или что? if !$ai! geq 0 set/a $ai-=1& echo:!$a!) - вообще не понял строки ктоме ЭХО Заранее спасибо!!! |
Отправлено: 16:52, 30-08-2012 | #6 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать (SetLocal EnableDelayedExpansion
set/a $ai=1 for /f "usebackq delims=" %%a in ("debug.log") do @(set "$a=%%a" if "!$a:~,0!"=="User anton" set/a $ai=-1 if !$ai! geq 0 set/a $ai-=1& echo:!$a!) EndLocal)>"1.txt" Вот при таком раскладе копирует обе нужные строки, но только первые найденные, а не по всему файлу. В чем я ошибся? |
Отправлено: 17:13, 30-08-2012 | #7 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Проблема решена)))
@echo off SetLocal EnableDelayedExpansion (for /f "usebackq tokens=* delims=" %%a in ("1.log") do ( set "$b=!$a!" set "$a=%%a" if not "!$a!"=="!$a:anton=!" ( echo !$b! echo !$a! )))>"2.txt" |
Отправлено: 10:42, 03-09-2012 | #8 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Тот же вопрос, что и у ОП'а, но нужно текст этой строки использовать как название нового txt файла, в который будут копироваться следующие 9 строчек.
Примерно вот так: Grid 01 (следующие цифры копировать в Grid 01.txt) 003020600 900305001 001806400 008102900 700000008 006708200 002609500 800203009 005010300 Grid 02 (следующие цифры копировать в Grid 02.txt) 200080300 060070084 030500209 000105408 000000000 402706000 301007040 720040060 004010003 и так далее до конца файла |
Отправлено: 13:54, 05-05-2013 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Если верно то, что Вы указали, на WSH:
Option Explicit Dim objTS Dim i With WScript.CreateObject("Scripting.FileSystemObject") Set objTS = .OpenTextFile("E:\Песочница\0247\0001.txt") Do Until objTS.AtEndOfStream With .CreateTextFile(objTS.ReadLine()) For i = 1 To 9 .WriteLine(objTS.ReadLine()) Next .Close End With Loop Set objTS = Nothing End With WScript.Quit 0 |
Отправлено: 16:02, 05-05-2013 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Копирование строк в отдельный файл по условию | Seryoga204 | Скриптовые языки администрирования Windows | 26 | 24-08-2016 23:33 | |
[решено] Копирование и вставка текста. | duxa | AutoIt | 3 | 21-12-2010 14:20 | |
CMD/BAT - [решено] Поиск строк с указанным словом и копирование их в отдельный файл | Maartimus | Скриптовые языки администрирования Windows | 2 | 13-07-2010 20:25 | |
[решено] Работа с html-кодом страницы, поиск и копирование нужных строк | Sestrichka | AutoIt | 14 | 02-04-2009 16:51 | |
копирование текста | volin | Хочу все знать | 10 | 08-01-2007 00:18 |
|