Чтение определённой строки из txt
Прошу вашей помощи в решении следующей задачи: нужно вывести на экран определённую строку из txt, но не по номеру строки, а по названию (тексту содержащемуся в ней) при этом чтобы первые 10 символов-не выводились (если это осуществимо конечно).
Заранее спасибо.
|
Код:
@for /f "delims=" %%a in ('^<"file.txt" find /i "это текст"') do @(set "$a=%%a"
SetLocal EnableDelayedExpansion& echo !$a:~10!& EndLocal)
|
Выдаёт такую вот ошибочку.
"find" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
|
Спасибо большое! Всё заработало, можно ли удалить последний символ выводимой строки? И ещё чтобы она подольше "провисела", а то появляется на секунду и тут же исчезает (не всегда же в консоли запускать).
|
Я уже наглею конечно, но нужно прочитать не одну строку, а две по тому же принципу отбора.
|
Цитата:
Цитата hxygen
чтобы она подольше "провисела" »
|
добавьте в конце скрипта строку паузы:
Цитата:
Цитата hxygen
нужно прочитать не одну строку »
|
вообще-то скрипт выводит все подходящие под условие строки
|
hxygen, Отличный батник, но если тебе не трудно, можешь дописать код чтобы выведенная строка записывалась в txt файл?? (я не знаю куда дописать >C:\file.txt) и чтобы он находил не одну такую строку а хотябы 2 строки содержащие искомое слов, этот батник только 1 строку находит, до второй не доходит.
И надеюсь может ты сможешь помочь, мне необходимо вывести на экран строку после искомого слова (find "искомое слово"), просто строка которая мне нужна, она меняется часто, а слово на строку выше всегда одно и тоже.
|
Цитата:
Цитата rapbit90
вывести на экран строку после искомого слова »
|
Код:
@echo off
set file=1.txt
set word=искомое слово
for /f "tokens=1 delims=[]" %%n in ('find /i /n "%word%" ^<"%file%"') do set /a "$n=%%n+1"
for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%file%"^|findstr /b "\[%$n%\]"') do echo.%%b
P.S. Если таких строк несколько, выводится последняя.
|
И этот бат не работает=(((( ничего не находит=( просто запускается и висит.
|
rapbit90, ошибка была - выдавал не ту строку, но висеть всё равно не должен... может файл большой?... батник небыстрый - файл обрабатывается в два прохода: сначала ищется номер строки с фразой (1-я строка батника), потом ищется строка с нужным номером +1 (2-я строка батника), для обработки больших файлов лучше использовать сторонние утилиты типа SED/AWK
|
Время: 18:49.
© OSzone.net 2001-