Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/72: Рейтинг темы: голосов - 72, средняя оценка - 4.82
HOST_ERROR
194 / 33 / 3
Регистрация: 12.05.2010
Сообщений: 361
1

Вытащить из файла строку

29.06.2010, 21:53. Просмотров 13598. Ответов 15
Метки нет (Все метки)

FOR /F "tokens=3,5" %i in ( myfile.txt ) do @echo %i %j
Выводит колонку символов номера 3 и 5
Пример:............Выводит:
Тел 8-916 ...............л 8
--=--.......................= -
Дом 5-923................м 5
--=--.......................= -
Раб -----.................б -

Вопрос: Как вытащить не колону символов, а строку 3 и 5 ?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2010, 21:53
Ответы с готовыми решениями:

Как скопировать строку c одного файла и вставить в другой файл эту же строку с символом в конце “_”
Подскажите, как можно через cmd скопировать строку с одного файла 1.txt и...

Получить N-ную строку текстового файла
Добрый день. Я батники никогда не писал, но по работе пришлось написать. Здесь...

Дописать информацию в предпоследнюю строку файла
Возникла проблема: cmd-файл успешно дозаписывает строчку в конец документа, но...

Замена строки из 1 файла на строку из другого
Есть файл с зашифрованным текстом (1.txt) и файл в котором даны коды для...

Объединить Часть имени файла и строку в файле
Добрый день. Прошу помощи. Есть файлы вида 192.168.1.101_file.txt В файле 1...

15
icu
55 / 40 / 5
Регистрация: 07.05.2010
Сообщений: 50
30.06.2010, 12:01 2
Через батник:
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
for /f "tokens=*" %%S in ('type myfile.txt ^| find /n /v "такой строки в файле точно нет"') do (
  for %%T in ([3] [5]) do (
    for /f "tokens=1,* delims=]" %%I in ('echo %%S ^| find "%%T"') do (
      echo %%J
    )
  )
)
2
HOST_ERROR
194 / 33 / 3
Регистрация: 12.05.2010
Сообщений: 361
30.06.2010, 21:28  [ТС] 3
Можно ли сделать к примеру от 15 до 200 строки ?
0
icu
55 / 40 / 5
Регистрация: 07.05.2010
Сообщений: 50
01.07.2010, 16:12 4
Лучший ответ Сообщение было отмечено как решение

Решение

Опять батник:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
 
set /A MIN=15
set /A MAX=200
 
set /A CNT=1
 
setlocal enabledelayedexpansion
 
for /f "tokens=*" %%S in ('type myfile.txt') do (
  if !CNT! GEQ %MIN% (
     if !CNT! LEQ %MAX% echo %%S
  )
  set /A CNT=!CNT!+1
)
4
lara-punk
1 / 1 / 0
Регистрация: 13.08.2010
Сообщений: 4
13.08.2010, 12:56 5
как я понял, данный скрипт вытаскивает из файла myfile.txt с 15 по 200 строку и выводит их на экран. Такой вопрос - а как эти строки записать в другой файл? мне надо, чтобы оно записало из одного файла определенные строки в другой. И второй вопрос - это работает только с txt-файлами, или я могу работать с любым расширением?

Добавлено через 1 час 28 минут
все, вопрос уже решил!!!
1
Hardip
1 / 1 / 1
Регистрация: 24.08.2010
Сообщений: 44
05.11.2010, 16:29 6
А подскажите пожалуйста, как вы решили решили вопрос с записью этих строк в другой файл? Заранее благодарю

Добавлено через 3 часа 6 минут
Все сам додумался)))) Вдруг если кому пригодится -
Windows Batch file
1
if !CNT! LEQ %MAX1% echo %%S>>C:\1.txt
0
K0NCTANT1N
139 / 65 / 3
Регистрация: 23.06.2010
Сообщений: 151
05.11.2010, 19:07 7
А, мне по такому примеру нужно из файла вытянуть не только с определенной строки, а то, что между "TO: " и "@uth0". Файл имеет вид:
FROM: ADMIN@UTH0
TO: ADMIN@U0H0
DATE: 27-Oct-10 09:41:31
DATE-DELIVERED: 27-10-10 09:44:02
Но почему-то выуживаю целиком "ADMIN@U0H0", а не только "ADMIN", признак окончания строки почему-то глотается.
0
Hardip
1 / 1 / 1
Регистрация: 24.08.2010
Сообщений: 44
06.11.2010, 13:47 8
Цитата Сообщение от K0NCTANT1N Посмотреть сообщение
А, мне по такому примеру нужно из файла вытянуть не только с определенной строки, а то, что между "TO: " и "@uth0". Файл имеет вид: Но почему-то выуживаю целиком "ADMIN@U0H0", а не только "ADMIN", признак окончания строки почему-то глотается.
Попробуйте вот тут почитать http://microsin.ru/content/view/443/1/. Тут на самом деле всё очень подробно написано, хотя и с первого раза всё просто так не кажется! Но мне помогло очень
0
K0NCTANT1N
139 / 65 / 3
Регистрация: 23.06.2010
Сообщений: 151
09.11.2010, 14:22 9
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
forfiles /p D:\TEMP /m *.* /c "cmd /c echo @path >>d:\temp.txt"
for /f %%i in ('type d:\temp.txt') do (
for /f "skip=2 delims=@ tokens=1" %%a in (%%~i) do (
for /f "tokens=2" %%b in ("%%a") do (
set name=%%b
goto step1)
)
)
 
:step1
echo %name%
Как вариант сделал так, но получаю данные только из последнего в списке (d:\temp.txt) файла.
0
rapbit
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 3
14.11.2010, 11:07 10
Всем привет, столкнулся с такой проблемой: Мне необходимо найти строку в текстовом файле (при открытии файла пишется что он бинарный), строка которая мне нужна часто меняется(т.к. файл является кукисом), но одно слово после которого идёт нужная строка всегда остаётся тем же, я вбиваю find "remixsid", оно мне находит этот текст, но та строка которая мне нужна находится после строки с этим словом.. как мне вывести на экран следующую строку после найденной?? кто может помочь???
0
K0NCTANT1N
139 / 65 / 3
Регистрация: 23.06.2010
Сообщений: 151
14.11.2010, 11:52 11
FIND может вернуть и номер строки, где нашел это слово, а слудующую строку можно вывести по примеру выше. Читай хелп к FIND и FOR
0
rapbit
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 3
14.11.2010, 13:00 12
Спасибо, у меня была такая идея, проблема в написании кода, но сейчас попробую снова. И если тебе не тяжело, опиши код пожалуйста.

Добавлено через 15 минут
Windows Batch file
1
FOR /F "tokens=3,5" %i in ( myfile.txt ) do @echo %i %j
ни в какую не выводит текст из cookies4.txt , а из простых текстовых выводит... может из-за того что cookies является бинарным файлом??? можно это как-то исправить??
0
K0NCTANT1N
139 / 65 / 3
Регистрация: 23.06.2010
Сообщений: 151
14.11.2010, 16:16 13
Не смогу тебе сейчас подсказать, в отпуске и пишу в дороге, а так бы посмотрел на этот файл.
0
rapbit
0 / 0 / 0
Регистрация: 02.12.2009
Сообщений: 3
14.11.2010, 16:30 14
Ну всё же спасибо.
Как я понял в бинарном файле текст записывается не построчно, а побайтово..
Может кто-нибудь знает как его вытащить оттуда и сделать построчно? главное чтобы всё было через cmd.
0
lara-punk
1 / 1 / 0
Регистрация: 13.08.2010
Сообщений: 4
15.11.2010, 19:09 15
Если можно, еще один маленький вопросик!
У меня есть файл из 15 строк (каждая строка - число). Как сделать, чтобы эти 15 строк записать по 5 строк в 3 колонки?? Т.е. что-то вроде вектора преобразовать в матрицу...
Заранее спасибо!!
0
olegkv
0 / 0 / 0
Регистрация: 22.04.2016
12.03.2012, 11:28 16
как мне вывести на экран следующую строку после найденной?
У меня строку (текстовый файл), следующую за ключевой строкой вытаскивает такой код:
Windows Batch file
1
2
3
4
5
@echo off
FINDSTR /i /n "NE2" update.ver >tmp.tmp
set /p pp2=<tmp.tmp
set pp2=%pp2:~0,3%
for /f "tokens=*" %%i in ('more +%pp2% "update.ver"') do (echo %%i&pause&exit)
NE2 - специфическая фраза строки (ключа подраздела)
update.ver - обрабатываемый файл
в 2 строках через set - выделение номера найденной ключевой строки
Не пробовал, но вижу, что здесь:
1. легко сдвинуть смещение относительно ключевой строки,
2. вывести несколько нужных строк

Добавлено через 17 часов 46 минут
....Побаловался, вот результат:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
rem ищем положение сигнальной подстроки в файле, выделяем ее номер от попутного мусора
FOR /f "delims=: " %%i in ('FINDSTR /i /n "NE2" update.ver') do @echo %%i>tmp.tmp
set /p uk=<tmp.tmp
 
rem выводим строки, пропуская uk строк и меняя счетчик-указатель uk
for /f "tokens=*" %%i in ('more +%uk% "update.ver"') do (echo %%i&goto nn2)
:nn2
set /a uk=%uk%+1
for /f "tokens=*" %%i in ('more +%uk% "update.ver"') do (echo %%i&goto nn3)
:nn3
set /a uk=%uk%+1
for /f "tokens=*" %%i in ('more +%uk% "update.ver"') do (echo %%i&pause&exit)
0
12.03.2012, 11:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2012, 11:28

Как занести вторую строку файла в переменную?
Нужно присвоить переменной %from% значение равное 2ой строке из файла D:\1.txt...

Вставка текущей даты в строку xml файла
Здравствуйте. Требуется в создаваемый xml файл прописывать текущую дату в тег...

Выделить из текстового файла n-ую строку (использовать find /n и for)
Выделить из текстового файла n-ую строку (использовать find /n и for)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru