![]() |
Копирование нескольких строк текста в файл
Имеем огромный лог-файл.
Необходимо командой finfstr найти определенную строку и скопировать ее содержимое в файл плюс 5 строчек после нее. И так по всему файлу (таких блоков много). Как это можно сделать через cmd? |
Цитата:
Какова максимальная длина строки? (FINDSTR имеет ограничение на длину обрабатываемых строк) Цитата:
P.S. желательно привести алгоритм поиска строк + кусок лога с вхождением пары искомых блоков (само собой, в тегах CODE) |
Цитата:
Цитата:
Пример куска лог-файла, который нужно искать (всегда начинается с NUMBER + 5 строк ниже): Код:
NUMBER: 443160 |
Цитата:
Код:
(SetLocal EnableDelayedExpansion |
Спасибо.
|
Помогите. Нужно тоже самое, только копировать эту строку и на одну выше.
(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!) - вообще не понял строки ктоме ЭХО Заранее спасибо!!! |
(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" Вот при таком раскладе копирует обе нужные строки, но только первые найденные, а не по всему файлу. В чем я ошибся? |
Проблема решена)))
@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" |
Тот же вопрос, что и у ОП'а, но нужно текст этой строки использовать как название нового txt файла, в который будут копироваться следующие 9 строчек.
Примерно вот так: Код:
Grid 01 (следующие цифры копировать в Grid 01.txt) |
Если верно то, что Вы указали, на WSH:
Код:
Option Explicit |
Спасибо!
Работает. Лишь файлы без расширения txt создает. Но это не проблема) |
Код:
@ECHO OFF |
Georgio, спасибо!
|
Цитата:
Код:
With .CreateTextFile(objTS.ReadLine() & ".txt") |
Доброго времени суток.
Из сказанного выше ни чего не понял, на форуме решение не нашёл. Необходимо из файла скопировать поля из ==Сертификат 1== в новый файл. Сертификатов может быть сколько угодно, идентификатор - SERVER-2-CA. Код:
my "Личное" Серийный номер: 22222222222222222222222222222222222222 Поставщик: CN=SERVER-2-CA, DC=mail, DC=ru NotBefore: 10.12.2013 9:04 NotAfter: 10.12.2014 9:04 Субъект: E=petrov@mail.ru, CN=Петров Пётр Петрович, OU=Организация, DC=mail, DC=ru Хеш сертификата(sha1): 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 Контейнер ключа = 222222222222222222222222222222222222222 Поставщик = Microsoft Enhanced Cryptographic Provider v1.0 За ранее спасибо. |
Validus, упакуйте образец файла:
Цитата:
|
Временно удалось слепить вот это:
Код:
@echo off |
Validus, пробуйте:
|
У меня вот, что получилось:
Код:
Microsoft Windows [Version 6.2.9200] |
Скопируйте вышеприведённый код. Создайте файл с расширением «.vbs». Вставьте в него из буфера обмена скопированный код, замените в нём выделенное Вашими значениями и сохраните. Затем можете запустить сохранённый файл двойным щелчком из Проводника.
|
Скрипт работает, огромное спасибо.
|
Доброго времени суток имеется текстовый файл такого содержания приведу его ниже, необходимо скопировать строки хcoord и усoоrd и uid , файл большой до 5000 строк
|
Вложений: 1
Вот пример файла из которого надо извлечь строки
|
Вложений: 2
"ok": true,
"option": { "scanTS": 1463483221, "unfreezeTS": 1463490421, "keptRsTS": 1463494021, "xy": "691,789", "ranges": ["80x80", "85x85", "90x90", "95x95", "100x100", "105x105", "110x110", "120x120", "130x130", "140x140"] }, "data": [{ "tileId": "623844", "xCoord": "714", "yCoord": "789", "tileCityId": 0, "tileType": 60, "tileCate": 2, "mi": { "i": { "aid": 0, "uid": 0 }, "c": { "i4120": { "tt": 385, "tr": 385 }, "i2": { "tt": 18, "tr": 18 }, "i3": { "tt": "8", "tr": "8" }, "i4": { "tt": "2", "tr": "2" }, "i5": { "tt": "1", "tr": "1" }, "i9": { "tt": "3", "tr": "3" }, "i4060": { "tt": 65, "tr": 65 }, "i4061": { "tt": "5", "tr": "5" }, "i5001": { "tt": "30", "tr": "30" }, "i5002": { "tt": "10", "tr": "10" }, "i5003": { "tt": "3", "tr": "3" }, "i5101": { "tt": 36, "tr": 36 }, "i4901": { "tt": "3", "tr": "3" }, "i6018": { "tt": 33, "tr": 33 }, "i20415": { "tt": "80", "tr": "80" }, "i912": { "tt": "3", "tr": "3" }, "i262": { "tt": "3", "tr": "3" }, "i272": { "tt": "3", "tr": "3" }, "i4005": { "tt": "600", "tr": "600" }, "i4006": { "tt": "200", "tr": "200" }, "i4007": { "tt": "64", "tr": "64" }, "i599": { "tt": "50", "tr": "50" }, "i600": { "tt": "1", "tr": "1" }, "i1005": { "tt": "5", "tr": "5" }, "i1006": { "tt": 0, "tr": 0 }, "i923": { "tt": "3", "tr": "3" }, "i922": { "tt": "1", "tr": "1" }, "i2101": { "tt": "0", "tr": "0" }, "i64127": { "tt": "3", "tr": "3" }, "i4131": { "tt": "1", "tr": "1" } }, "r": [] }, "dist": 23 }, { "tileId": "611708", "xCoord": "647", "yCoord": "783", "tileCityId": "11084", "tileType": 60, "tileCate": 2, "mi": { "i": { "aid": "247", "uid": "18505151" }, "c": { "i4120": { |
Нужно сделать чтоб было так
"xCoord": "714", "yCoord": "789", "uid": 0 "xCoord": "647", "yCoord": "783", "uid": "18505151" "xCoord": "640", "yCoord": "792", "uid": 0 |
Den472013, cmd не умеет расковыривать *.doc . Если есть возможность сохранить файлы в текстовом формате то можно так:
Код:
findstr /i "XCoord yCoord uid" file.txt >> result.txt |
Цитата:
|
Спасибо все получилось
|
Время: 18:54. |
Время: 18:54.
© OSzone.net 2001-