CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Аватара пользователя
a1ek9

CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение a1ek9 »

Добрый день! Прошу помощи. Третий день уже гуляю по рунету, перерыл кучу скриптов, но довести до конца так и не смог xD. Воощем сама задача состоит в скачивании файла с mediafire.*** (не знаю можно нет тут линки постить). Вообщем пробовал curl и wget (wget2 только не пробовал).

Код:

Код: Выделить всё

curl -O "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file"

качает file без расширения, ну понятно что это страничка загрузки файла, в этом файле есть линк на скачку файла, которую надо вытащить (так понял что по номеру строки лучше не делать парс, так как может измениться)

Код:

Код: Выделить всё

<a class="input popsok"
           aria-label="Download file"
           href="https://download1586.mediafire.com/4jsacics6yigFwpWnXlh3fWPXGGxxiPcGZeHB8a4UU6cCuZ7slbzY_O2198VfoPuO3eGNlHXjSvC7gMEMXWLo1094J-ts15YX_u_rCCBGOB2ueOyXXMxkGVPEsW9F3K6sP0sDLjRtRfE80k2lrmOIVMIPr04guI1F7x90fXUHSlk4Iw/h3e51rwcr4jrh8m/iconapp.dll"           id="downloadButton"
           rel="nofollow">
                Download (9.33MB)
        </a>

Подскажите пожалуйста как вытащить строку на загрузку по прямой ссылке? Прям вот очень хочется глянуть) Парс нужен от "href="
https://d
" и до ". Ну или может есть какой та другой вариант? Буду очень признателен :-)
Аватара пользователя
Sham

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение Sham »

Код:

Код: Выделить всё

wget -qO- "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file" | grep -Pozi 'aria-label="Download\sfile"\s*href="\K[^"]+' | wget -qi-

так скачивает например.
Аватара пользователя
a1ek9

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение a1ek9 »

Цитата Sham:



так скачивает например.
CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную




У меня вообще сразу все закрывается. А
Цитата a1ek9:



Подскажите пожалуйста как вытащить строку
CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную




с этим не подскажите? тогда и curl был бы рабочим вариантом и без лишних файлов.

Изображение
Аватара пользователя
Sham

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение Sham »

Цитата Sham:



уберите "| wget..." и выведет ссылку
CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную




Так же просто закрывается.


Цитата Sham:



grep
CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную




У меня windows если что) Нашел скачал ругается на отсутствие 4х файлов (pcre3.dll, regex2.dll, libintl3.dll, libiconv2.dll) Буду искать сейчас.

upd. Зависимости все нашел, теперь вот что пишет grep: The -P and -z options cannot be combined, и файл создает .wget-hsts.
Аватара пользователя
Sham

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение Sham »

если нужен PS, то там wget это invoke-webrequest, который уже сам парсит html



Код:

Код: Выделить всё

(wget "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file").links | ? aria-label -eq 'download file' | select -exp href
Аватара пользователя
Sham

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение Sham »

Цитата Sham:



если нужен PS
CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную




Плохой опыт с ним, надо cmd либо сmd с какими нибудь консольными утилитами (не грамозкими). Не могу понять почему ваш первый вариант не работает, а у вас срабатывает(
Аватара пользователя
a1ek9

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение a1ek9 »

рабочий grep из MSYS2. grep из git тоже работает, то требует юникод-локаль (set LC_ALL=en_US.utf8).

"\K" (отбрасывает строку слева) требует флага -P (perl - выражения). Есть другие флаги (E и G), может и там что-то есть.
Аватара пользователя
Sham

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение Sham »

Цитата Sham:



(wget "
https://www.mediafire.com/file/h3e51rwc ... p.dll/file
").links | ? aria-label -eq 'download file' | select -exp href
CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную




в cmd сделал, ответ верный, то что надо. Как в переменную это все завернуть? Подскажи пожалуйста!



Код:

Код: Выделить всё

powershell -command "(wget "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file").links | ? aria-label -eq 'download file' | select -exp href"

долго правда, но на первое время сойдет, парс с файла все равно допилю когда время будет.
Аватара пользователя
Sham

Re: CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Сообщение Sham »

в cmd обычно через for вывод в переменную пишут

Код:

Код: Выделить всё

@for /f "tokens=* usebackq" %%f in (`powershell ...`) do @set var=%%f
Ответить

Вернуться в «Скриптовые языки администрирования Windows»