2016-10-24 3 views
2

Я пытаюсь удалить блок текста перед сохранением вывода. Его пакетный скрипт. Существует много ненужных данных, которые необходимо удалить из вывода. Я использую findstr /v, чтобы удалить согласованный текст, но, к сожалению, не смог получить требуемый результат.Удалить блок текста перед сохранением вывода в пакетном файле

Токовый выход:

shdgs - Copyright (с) 1989-2006 гг hsagd asjgdjasgd и/или hsgdhgas. Все Права защищены. hashjasdsadasdasd пн 10/24/2016 07:53

[hjasgdjaghsdh ...] ajsgdjasgdajs: jasdjkasjdkhasjkh: C: \ Test \ тест \ тест \ lic.dat:

jasbdjadsb: sadfsadfsdfadfsadf

статус поставщика демон (на asdasad):

sadfsadf: UP v10.8 

Пользователи 259: (Всего 8 лицензий; Всего 4 лицензий в использования)

"259" версии 5.8, производитель: ptc_d плавающая лицензия

876347634 dfdhgdhf khdskhf (v7.0) (sdfsdf/6784 601), start Mon 10/24 6:42 
abcd sdsdfsfd gfdfgdd (v7.0) (fdgdfgdf/6554 211), start Mon 10/24 6:02 

Я требую, чтобы удалить только следующий текст:

shdgs - Copyright (C) 1989-2006 гг hsagd asjgdjasgd и/или hsgdhgas. Все Права защищены. hashjasdsadasdasd пн 10/24/2016 07:53

[hjasgdjaghsdh ...] ajsgdjasgdajs: jasdjkasjdkhasjkh: C: \ Test \ тест \ тест \ lic.dat:

jasbdjadsb: sadfsadfsdfadfsadf

статус поставщика демон (на asdasad):

sadfsadf: UP v10.8 

Окончательный вывод:

Пользователи 259: (Всего выдано 8 лицензий; Всего 4 лицензий в использования)

"259" v5.8, поставщик: ptc_d плавающей лицензии

876347634 dfdhgdhf khdskhf (v7.0) (sdfsdf/6784 601), start Mon 10/24 6:42 
abcd sdsdfsfd gfdfgdd (v7.0) (fdgdfgdf/6554 211), start Mon 10/24 6:02 

Как можно эффективно удалить выбранный текст?

Спасибо.

+0

'findstr/r" лицензия v7.0 "test.txt' –

+3

Является ли текст в файле или выводом команды? Являются ли верхние строки одинаковыми количествами каждый раз? Вы можете использовать 'for/f', чтобы пропустить строки вверху. У строк, которые вы хотите, есть что-то уникальное, что вы можете искать? Почему не работает 'findstr/v'? – soja

+0

Что вы больше всего пробовали? Пожалуйста, поделитесь своими усилиями! В противном случае это не настоящий вопрос, а запрос задачи, который не соответствует теме ... – aschipfl

ответ

2

На основе по крайней мере, некоторые из ваших текстов быть реальным:

@Echo Off 

(Set SrcFile=C:\test\test\test\lic.dat) 
(Set DstFile=C:\test\test\test\fixedlic.dat) 

Set "LNR=" 
For /F "Delims=" %%A In ('FindStr/BNC:"Users of " "%SrcFile%"') Do (
    If Not Defined LNR Set "LNR=%%A") 
Set/A LNR-=1 
More +%LNR% "%SrcFile%">"%DstFile%" 

Просто измените пути в скобках в строках 3 & 4 в соответствии с вашими целями.

Если вы хотите Rename«% DstFile» в «% SrcFile%» на новой последней строке, то не стесняйтесь сделать это.

Смежные вопросы