![]() |
Помогите с findstr
Доброго времени суток! Недавно столкнулся с проблемой: с помощью 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 все работает. Заранее спасибо! |
dima05605, упакуйте полученный файл «ip_geo.php» с «UKRAINE» архиватором и выложите сюда.
|
Залил на rghost)
http://rghost.ru/41194980 Немного поковырялся, теперь находит UKRAINE, но в переменную записывает не слово, а букву t. Не вижу связи между ними. |
dima05605, либо перестаньте называть пакетные файлы именами команд («
|
Ээ, немного не понял)
|
Вы назвали пакетный файл именем «findstr.bat». Внутри этого пакетного файла Вы вызываете его же:
Цитата:
Избежать этой ошибки можно было двумя путями: Цитата:
|
Переименовал на poisk.bat и написал туда
for /F "delims=xxx" %%a in ('findstr.exe "UKRAINE" ip_geo.txt') do set a=%%a echo %a% выводит не UKRAINE, а букву t |
dima05605,
А зачем тебе такие разделители "ххх"? На примере из твоего архива: Код:
@echo off |
Спасибо, последний код работает, но при поиске русских слов пишет:
Режим вывода команд на экран (ECHO) отключен. Кто-то знает как исправить данную проблему? |
dima05605, не раз сталкивался с такой проблемой. Попробуй заменить findstr на find. Findstr.exe походу испытывает трудности с кириллицей.
|
В текстовике поставил Russia. Но при поиске "Страна:" пишет Ukraine. Если в поиск вбить "State:" и в текстовике тоже заменить State:Russia, то все работает. В чем проблема?
|
Ладно, спасибо всем! Хоть я получил немного не то что нужно, но все же вы мне сильно помогли! :)
|
Здесь ошибка!
@echo off setlocal 1>nul chcp 1251 for /f "tokens=2 delims=:<" %%i in ('find "Страна" ip_geo.txt') do call:set %%i echo %a% >> result.txt 1>nul (chcp 866 & pause) goto:eof :set set "a=%1" Если в ip_geo.txt изменить Ukraine на Russia например, то выведет Ukraine все равно |
Цитата:
|
Сейчас попробую
От жеж блин) Вот если echo off убрать, то видно что сначала присваевается россия, потом украина, я код крутил как мог, а оказалось в тексте 2 слова "Страна"! Спасибо большое! Не знаю как даже отблагодарить! :) |
Цитата:
|
Время: 18:14. |
Время: 18:14.
© OSzone.net 2001-