Что не так с этим BAT-файлом с использованием FINDSTR? - PullRequest
1 голос
/ 20 октября 2011

Мне нужно ввести список ссылок, которые ведут на страницы аналогичного формата, с разницей в содержании и одним тегом.

РЕДАКТИРОВАТЬ

input.txt
/category/apples-and-oranges.html
/category/pineapples.html
/category/asparagus.html
/category/brussel-sprouts.html
/category/passion-fruit.html

Предположим, что страницы с фруктами имеют <h1>Fruit!</h1>, в то время как страницы без фруктов нет, но они относятся к одной категории.Программа проверит эти расширения до http://www.mysite.com и затем создаст новый список:

output.txt
/category/apples-and-oranges.html
/category/pineapples.html
/category/passion-fruit.html

Вот что у меня получилось:

for /f %%A in (input.txt) DO (
    for "tokens=1,2 delims=:" %%b in ('FINDSTR [/R] [/I] [/S] [/C:"<H1>.*Fruit!.*</H1>"] [[http://]www.mysite.com/%%A[*.html]]') DO (
    echo ^<%%A> > <output.txt>
)

)

1 Ответ

3 голосов
/ 21 октября 2011

В вашем подходе есть несколько проблем.Прежде всего, FINDSTR не может найти в удаленных URL.Поэтому вам нужно загрузить их.

Начните со следующего кода, который использует CURL для загрузки, чтобы начать работу.

@echo off
FOR /F %%A in (input.txt) DO (
  curl --output temp.html http:www.mysite.com/%%A 
  FOR /F "tokens=1,2 delims=:" %%B in ('FINDSTR /I /R "<H1>.*Fruit.*</H1>" temp.html') DO (
    ECHO %%A
  )
)

Редактировать:

cURL - это не команда Windows, это внешняя утилита.http://en.wikipedia.org/wiki/CURL.Вам нужно будет установить его.Существует еще один хорошо известный инструмент для загрузки через Интернет, GNU Wget http://en.wikipedia.org/wiki/Wget.Для получения дополнительной информации см. Этот вопрос на Superuser.com https://superuser.com/questions/299754/wget-curl-alternative-native-to-windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...