Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Чтение определённой строки из txt

Ответить
Настройки темы
CMD/BAT - [решено] Чтение определённой строки из txt

Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Прошу вашей помощи в решении следующей задачи: нужно вывести на экран определённую строку из txt, но не по номеру строки, а по названию (тексту содержащемуся в ней) при этом чтобы первые 10 символов-не выводились (если это осуществимо конечно).
Заранее спасибо.

Отправлено: 14:49, 18-10-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@for /f "delims=" %%a in ('^<"file.txt" find /i "это текст"') do @(set "$a=%%a"
SetLocal EnableDelayedExpansion& echo !$a:~10!& EndLocal)
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:17, 18-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Выдаёт такую вот ошибочку.

"find" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Отправлено: 17:06, 18-10-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


FIND.EXE - штатная системная утилита, должна находиться в каталоге "%windir%\System32\", если её там нет - привет nLite и Ko, если она есть, то проверьте системную переменную PATH: Разное - [решено] Не работают команды в командной строке.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:17, 18-10-2010 | #4


Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо большое! Всё заработало, можно ли удалить последний символ выводимой строки? И ещё чтобы она подольше "провисела", а то появляется на секунду и тут же исчезает (не всегда же в консоли запускать).

Отправлено: 18:55, 18-10-2010 | #5


Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Я уже наглею конечно, но нужно прочитать не одну строку, а две по тому же принципу отбора.

Отправлено: 19:20, 18-10-2010 | #6


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата hxygen:
чтобы она подольше "провисела" »
добавьте в конце скрипта строку паузы:
Код: Выделить весь код
pause>nul
Цитата hxygen:
нужно прочитать не одну строку »
вообще-то скрипт выводит все подходящие под условие строки
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:24, 19-10-2010 | #7


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


hxygen, Отличный батник, но если тебе не трудно, можешь дописать код чтобы выведенная строка записывалась в txt файл?? (я не знаю куда дописать >C:\file.txt) и чтобы он находил не одну такую строку а хотябы 2 строки содержащие искомое слов, этот батник только 1 строку находит, до второй не доходит.
И надеюсь может ты сможешь помочь, мне необходимо вывести на экран строку после искомого слова (find "искомое слово"), просто строка которая мне нужна, она меняется часто, а слово на строку выше всегда одно и тоже.

Отправлено: 21:41, 14-11-2010 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата 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. Если таких строк несколько, выводится последняя.

Последний раз редактировалось amel27, 16-11-2010 в 02:40.

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:26, 15-11-2010 | #9


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


И этот бат не работает=(((( ничего не находит=( просто запускается и висит.

Отправлено: 23:42, 15-11-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Чтение определённой строки из txt

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - [решено] vb.net чтение конкретной строки файла RUVATA Программирование и базы данных 7 19-08-2010 10:21
CMD/BAT - чтение / запись *.txt RUVATA Скриптовые языки администрирования Windows 8 06-08-2010 15:43
VBS/WSH/JS - [решено] Нужно быстро (!) удалить пустые строки во всех txt-файлах из одной директории andreton Скриптовые языки администрирования Windows 10 08-06-2010 03:39
CMD/BAT - [решено] Чтение строки из файла в переменную Николя Скриптовые языки администрирования Windows 42 17-01-2010 19:42
.NET - Запись настроек программы в файл txt и чтение этих настроек обратно ProgrammerPC Программирование и базы данных 4 11-12-2009 10:46




 
Переход