|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помогите с findstr |
|
|
CMD/BAT - [решено] Помогите с findstr
|
Пользователь Сообщения: 66 |
Профиль | Отправить PM | Цитировать Доброго времени суток! Недавно столкнулся с проблемой: с помощью wget я качаю страницу с http://ip-whois.net/ip_geo.php. После того как я скачал страницу, мне надо найти строку в файле. С помощью простой команды "findstr" я могу найти строку, которая мне надо, а вот для того чтобы занести найденную строку в переменную я использую:
for /F "delims=xxx" %%a in ('findstr "UKRAINE" ip_geo.php') do set a=%%a С другими файлами все прекрасно работает, а вот в случае с поиском строки "UKRAINE" просто один раз мигнула консоль и все. Вот сам код: @echo off for /F "delims=xxx" %%a in ('findstr "UKRAINE" ip_geo.php') do set a=%%a echo %a% pause То есть мне надо чтобы показывало переменную, а не закрывалось окно. С простым findstr все работает. Заранее спасибо! |
|
Отправлено: 21:05, 27-10-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать dima05605, упакуйте полученный файл «ip_geo.php» с «UKRAINE» архиватором и выложите сюда.
|
Отправлено: 21:27, 27-10-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 66
|
Профиль | Отправить PM | Цитировать Залил на rghost)
http://rghost.ru/41194980 Немного поковырялся, теперь находит UKRAINE, но в переменную записывает не слово, а букву t. Не вижу связи между ними. |
Отправлено: 21:41, 27-10-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать dima05605, либо перестаньте называть пакетные файлы именами команд («
|
Отправлено: 22:43, 27-10-2012 | #4 |
Пользователь Сообщения: 66
|
Профиль | Отправить PM | Цитировать Ээ, немного не понял)
|
|
Отправлено: 00:19, 28-10-2012 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Вы назвали пакетный файл именем «findstr.bat». Внутри этого пакетного файла Вы вызываете его же:
а отнюдь не приложение «%SystemRoot%\System32\findstr.exe». В результате Вы получаете теоретически бесконечную рекурсию — до переполнения. Избежать этой ошибки можно было двумя путями: Цитата Iska:
|
|
Отправлено: 03:50, 28-10-2012 | #6 |
Пользователь Сообщения: 66
|
Профиль | Отправить PM | Цитировать Переименовал на poisk.bat и написал туда
for /F "delims=xxx" %%a in ('findstr.exe "UKRAINE" ip_geo.txt') do set a=%%a echo %a% выводит не UKRAINE, а букву t |
Отправлено: 13:55, 28-10-2012 | #7 |
Ветеран Сообщения: 1758
|
|
Отправлено: 14:10, 28-10-2012 | #8 |
Пользователь Сообщения: 66
|
Профиль | Отправить PM | Цитировать Спасибо, последний код работает, но при поиске русских слов пишет:
Режим вывода команд на экран (ECHO) отключен. Кто-то знает как исправить данную проблему? |
Отправлено: 15:34, 28-10-2012 | #9 |
Ветеран Сообщения: 1758
|
dima05605, не раз сталкивался с такой проблемой. Попробуй заменить findstr на find. Findstr.exe походу испытывает трудности с кириллицей.
|
Отправлено: 15:43, 28-10-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[Ну помогите же человеку, а? :)] Помогите с конкурсом | HTML64 | Тест-форум | 0 | 29-06-2012 10:33 | |
CMD/BAT - [решено] помогите скачал себе этот вирус помогите его разблокировать | orell | Скриптовые языки администрирования Windows | 2 | 05-05-2012 15:45 |
|