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

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

Ответить
Настройки темы
CMD/BAT - [решено] Парсить текст.
WoW WoW вне форума

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


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

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


Цитата:
root,second,green,blue
end,start,yes,welcome
Нужно парсить второе и третье слово из строки, чтобы получилось так:

Цитата:
second,green
start,yes
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:25, 15-02-2012

 

Ветеран


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

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


Из командной строки:
Код: Выделить весь код
for /f "tokens=2,3 delims=," %i in (file.txt) do @echo %i,%j
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:52, 15-02-2012 | #2



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

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

WoW WoW вне форума Автор темы

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


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

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


Iska, спасибо.

Можно еще помощь, если между словами разный разделитель.
Цитата:
root,second;green.blue:red
Получить так:
Цитата:
second;green:red

Отправлено: 18:26, 15-02-2012 | #3


Ветеран


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

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


Какие здесь:
Цитата WoW:
Код: Выделить весь код
root,second;green.blue:red
»
разделители?

Отправлено: 21:32, 15-02-2012 | #4

WoW WoW вне форума Автор темы

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


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

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


Такие как: запятая, точка с запятой, точка, двоеточие.
В первом вопросе, слова разделял только знак: запятая.

Отправлено: 19:54, 18-02-2012 | #5


Ветеран


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

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


Ясно.

Тогда разъясните, каким образом из
Код: Выделить весь код
root,second;green.blue:red
может получиться:
Код: Выделить весь код
second;green:red
если изначально Вы пишете о:
Цитата WoW:
…второе и третье слово из строки, »
Определитесь в своих требованиях.

Отправлено: 23:44, 18-02-2012 | #6

WoW WoW вне форума Автор темы

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


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

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


Iska, это "…второе и третье слово из строки" к первому вопросу было. Второй вопрос, просто примером спросил. Не подумал, что надо было описать (второе, третье, пятое), извините.

Отправлено: 01:36, 19-02-2012 | #7


Ветеран


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

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


WoW, с этим ясно.

Тогда достаточно в предыдущем примере указать несколько разделителей и соответствующие элементы:
Код: Выделить весь код
for /f "tokens=2,3,5 delims=,;.:" %i in (file.txt) do @echo %i,%j,%k
Цитата:
Код: Выделить весь код
second,green,red
Проблема возникает с получаемыми разделителями, ибо в коде они указаны напрямую:
Код: Выделить весь код
echo %i,%j,%k
и нет возможности получить их прозрачно из исходного файла. Вам такое подходит?
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:23, 19-02-2012 | #8

WoW WoW вне форума Автор темы

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


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

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


Iska, подходит. Спасибо!

Только такая ошибка:
Цитата:
Непредвиденное появление: i.
C:\>for /f "tokens=2,3,5 delims=,;.:" i,k
Если так, то нормально:
Цитата:
for /f "tokens=2,3,5 delims=,;.:" %%i in (file.txt) do @echo %%i,%%j,%%k

Отправлено: 03:03, 19-02-2012 | #9


Ветеран


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

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


Цитата WoW:
Только такая ошибка… »
Я привёл код для применения непосредственно из командной строки. В случае его использования в пакетном файле символы «%» при переменных цикла нужно удваивать. Что Вы, собственно, и верно сделали.

Внутри пакетного файла можно убрать и подавление вывода команды «@» — при «… do @echo %%i,…» — если используется «echo off» в начале пакетного файла.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:39, 19-02-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - C#: Как парсить RIFF? Sanchos Программирование и базы данных 2 14-11-2011 09:35
CMD/BAT - С помощью bat-ника найти и заменить текст в файле на текст из другого файла Nun-Nun Скриптовые языки администрирования Windows 1 08-03-2011 15:25
[решено] Twitter. Парсить новые сообщения Artem-Samsung Вебмастеру 1 10-03-2010 00:41
не копируется текст spilberg Microsoft Windows NT/2000/2003 5 17-07-2009 13:38
Текст в таблицах. ivank Вебмастеру 7 11-04-2002 13:46




 
Переход