Ru-Board.club
← Вернуться в раздел «Программы»

» Wget

Автор: BakLAN
Дата сообщения: 02.11.2007 16:20
popkov
Это у всех так в этой версии. А исправить конечно можно, если сам умеешь собрать прогу из исходников: собсно находишь ошибку, исправляешь её и компилишь прогу По другому никак...
Автор: Alex_Dragon
Дата сообщения: 02.11.2007 17:15
Разве что перекомпилировать, исправив. Разработчики лоханулись: вместо обычных пробелов они зачем-то херачат неразрывные —   А в русской DOS'овской раскладке CP866 (в которой в русской винде работают консольные программы) этому символу соответствует маленькая буква «а». Естественно, в нерусской винде этого не видно и им кажется, что всё хорошо.
Возможно это особенность среды разработки. У меня есть такое подозрение, что исходники авторы виндовой версии правят кабы не в "Блокноте", а скорее всего в какой-то IDE, слишком умной и автоматически раставляющей пробелы. Под консолью такой глюк вылез бы не только у русских.
Автор: 01MDM
Дата сообщения: 02.11.2007 17:32
Можно легко исправить если поменять значение
HKCU\Control Panel\Intenational\sThousand(reg_sz) на нужное, точку или запятую. Отразится на всех консольных приложениях, т.е вместо пробела в разделителях тысячных будет ваш символ.

Небольшой батник:

Код:
@echo off
reg add "hkcu\control panel\international" /v sThousand /t reg_sz /d "." /f
wget %*
reg add "hkcu\control panel\international" /v sThousand /t reg_sz /d " " /f
Автор: popkov
Дата сообщения: 02.11.2007 21:51
01MDM
Круто! У меня и в самом деле в качестве значения этого параметра стоит Неразрывный пробел! Поразительно! Выходит, это не глюк среды разработки, а просто разработчики Wget переусердствовали: используют в качестве разделителя разрядов символ, указанный в реестре?
Или скорее, даже тот, кто его портировал под Windows!


Цитата:
Отразится на всех консольных приложениях, т.е вместо пробела в разделителях тысячных будет ваш символ.

Значение этого параметра соответствует опции "Разделитель групп разрядов" в Панели управления -> "Язык и стандарты" -> вкладка "Числа".
Влияет она, таким образом, на все приложения Office и другие, которые используют эти параметры.

Видимо, в Microsoft не думали, что кто-то станет форматировать числа в консоли, используя значение этого параметра.
Насколько я понимаю, неразрывный пробел - символ Юникода, и его значение выходит за границы диапазона кодировки DOS. Значит, этот параметр вообще не предназначен для использования в DOS-приложениях! Так что разработчики и впрямь перемудрили...

Добавлено:

Цитата:
Небольшой батник:

За батник спасибо, но хотелось бы, чтобы этот параметр как-то передавался Wget без редактирования реестра. А то мало ли что: может, я захочу прервать выполнение своего батника (работу Wget) - и тогда значение пераметра не вернётся к первоначальному.

Или, может быть, можно как-то менять значение параметра обратно сразу после запуска Wget, не дожидаясь окончания работы Wget? Идеально было бы оформить это всё как DOSKEY-макрос: тогда не придётся думать каждый раз над этой чепухой...

Добавлено:

Один момент. Насколько я понимаю, выставить такое Unicode-значение данного параметра, как Неразрывный пробел, через батник не получится? Ведь у батника кодировка DOS...
Автор: 01MDM
Дата сообщения: 03.11.2007 00:31

Цитата:

А то мало ли что: может, я захочу прервать выполнение своего батника (работу Wget) - и тогда значение пераметра не вернётся к первоначальному.


Можно сделать так:

Код:
@echo off
reg add "hkcu\control panel\international" /v sThousand /t reg_sz /d "." /f
start /b wget %*
ping -n 2 localhost >nul :: Это чтоб wget успел подхватить значение реестра
reg add "hkcu\control panel\international" /v sThousand /t reg_sz /d " " /f
exit /b
Автор: popkov
Дата сообщения: 03.11.2007 01:08

Цитата:
start wget %*

Прикольно! Так даже удобнее. Спасибо.

А возвращение значений на дефолтные я реализовал просто через импорт файла реестра с первоначальным значением параметра. Думаю, через батник вводить неразрывный пробел не получится.
Цитата:
regedit /s "%Wget_DIR%\InternationalOptions.reg"
Автор: Dem_anywhere
Дата сообщения: 03.11.2007 02:12

Цитата:
Это у всех так в этой версии. А исправить конечно можно, если сам умеешь собрать прогу из исходников: собсно находишь ошибку, исправляешь её и компилишь прогу По другому никак...

Очень даже как! Притом мне даже ничего менять не пришлось - просто собрал майкрософтовским компилером.
Тот в консольное приложение вставляет другой пробел, чем в оконное.. Умный
Автор: popkov
Дата сообщения: 03.11.2007 23:34
Dem_anywhere
И ровным счётом ничего не менял в исходниках? Собирал по инструкции с
http://www.christopherlewis.com/WGet/WgetOnWindows.htm
или пришлось до чего-то додумываться самому?

Может, опубликуешь своё творение (exe-шник) - например, на http://mihd.net .
Автор: taurman
Дата сообщения: 07.11.2007 08:33
Как сделать чтоб Wget запоминал место, с которого прервалась закачка?
Чтобы при повторной попытке закачать сайт, он это делал с места обрыва, а не передлопачивал заново все ссылки.
Хоть и есть такой полезный ключик как --no-clobber (Не модифицировать локальные файлы во время рекурсивной выборки иерархии документов).
Но это не решает проблему. Есть ли какойто другой ключик для продолжения зеркалирования сайта с места обрыва?
Автор: MaxPolulyakh
Дата сообщения: 07.11.2007 15:23
У меня снова вопрос.

Есть такой вот ресурс. http://ftp.isu.edu.tw/pub/Windows/Edskes/n/
Каждый день там выкладывается, среди прочего, свежий релиз пары антивирусных сканеров, в данном случае - NOD32.

Файлы имеют имена вида nod32_20071106.exe. Реально ли написать скрипт для wget, чтобы он запускаясь раз, скажем, в неделю, скачивал только файл за этот день, а не все из этой папки?

Доступ к этому ресурсу есть и по ftp, протокол в адресе поменяйте просто и всё.
Автор: Aeismann
Дата сообщения: 07.11.2007 18:06
%DATE% в батнике раскрывается в текущую дату, только вот я не знаю, как изменить формат... думаю, легче наваять скриптик на VBscript
Автор: NoAngel777
Дата сообщения: 07.11.2007 18:16
popkov

Собрано с MSVC 8.0 SP1 Express Edition. Немного модифицированы ключи компилятора с целью уменьшить объём output binary. требует установки VC 8.0 SP1 runtimes. собрано с последней OpenSSL, тоже скомпилированной из исходников. Вархиве также версия без поддержки SSL.

Wget 1.11 beta 1: http://tinyurl.com/ywxbcy
Автор: popkov
Дата сообщения: 07.11.2007 18:59
NoAngel777

Цитата:
Собрано с MSVC 8.0 SP1 Express Edition. Немного модифицированы ключи компилятора с целью уменьшить объём output binary. требует установки VC 8.0 SP1 runtimes. собрано с последней OpenSSL, тоже скомпилированной из исходников. Вархиве также версия без поддержки SSL.

Wget 1.11 beta 1: http://tinyurl.com/ywxbcy


Спасибо! Работает отлично. В качестве разделителей групп разрядов выступает запятая. Вроде, VC 8.0 у меня не установлены, но всё равно работает, слава богу... Никогда ещё wget не требовал установки всякой дополнительной фигни - в этом одно из его ценнейших преимуществ!...
Автор: mselin
Дата сообщения: 08.11.2007 06:28
Чудеса! Пытаюсь обновлять ключ антивируса drweb:

wget.exe --no-directories --continue -Adrweb32.key -P"C:/Program Files/DrWeb/" "ftp://username%%40mydomain.ru:passw@ftp.mydomain.ru/*.*"
:end

Если в директории C:/Program Files/DrWeb/ ключа drweb32.key нет, то он туда записывается и все ОК. Но если в ней лежит старый, то у файла drweb32.key обновляется дата изменения, но сам файл остается тот же При этом в логах:
`C:/Program Files/DrWeb/drweb32.key' saved [1420]
Автор: iglezz
Дата сообщения: 08.11.2007 10:02
mselin
ключик--continue отвечает за докачку файлов, здесь он не уместен
Автор: mselin
Дата сообщения: 08.11.2007 14:02

Цитата:
ключик--continue отвечает за докачку файлов, здесь он не уместен

Убрал --continue, теперь он вместо перезаписи drweb32.key создает drweb32.key.1 drweb32.key.2 и т.д
Автор: iglezz
Дата сообщения: 08.11.2007 16:01
mselin
хм, в общем то логично...
можно тфк:
wget.exe -O"C:/Program Files/DrWeb/drweb32.key" "ftp://username%%40mydomain.ru:passw@ftp.mydomain.ru/drweb32.key"
Автор: mselin
Дата сообщения: 09.11.2007 06:12
iglezz
Спасибо! Так получилось!
Автор: mselin
Дата сообщения: 11.11.2007 06:28
iglezz
Есть проблема... Если делать так:

Цитата:
wget.exe -O"C:/Program Files/DrWeb/drweb32.key" "ftp://username%%40mydomain.ru:passw@ftp.mydomain.ru/drweb32.key"

то при запуске задания без интернет соединения файл drweb32.key получается нулевой длины... Что можно сделать?
Автор: iglezz
Дата сообщения: 11.11.2007 10:43
mselin

test.bat
Код: @[no]ECHO[/no] off
ping -n 1 ftp.mydomain.ru
[no]if errorlevel[/no] 1[no] goto[/no] ineta_netu
wget.exe -O"C:/Program Files/DrWeb/drweb32.key" "ftp://username[no]%%4[/no]0mydomain.ru:passw@ftp.mydomain.ru/drweb32.key"
[no]exit[/no]

[no]:ineta_netu[/no]
Автор: mselin
Дата сообщения: 11.11.2007 21:29
Спасибо! Работает!
Хотя конечно опасность затереть файл все равно остается...
Автор: evgenych
Дата сообщения: 14.11.2007 19:40
Есть ссылка
http://stg190.ifolder.ru/download/?2666033&nCy54OmXrdwVf1Y7OTU0gwzAiTEX5fOs%2Bxs1lYZiBJs%3D

Опера сохраняет с нормальным именем типа
Casa musica - Premium Standard - Ballroom Fascination Part1 (1-10).rar

Wget сохраняет что то типа такого
2666033&nCy54OmXrdwVf1Y7OTU0gwzAiTEX5fOs%2Bxs1lYZiBJs%3D

Можно ли wget заставить сохранять с нормальным именем?
Автор: chmaxim
Дата сообщения: 17.11.2007 06:53
NoAngel777

Цитата:
Собрано с MSVC 8.0 SP1 Express Edition. Немного модифицированы ключи компилятора с целью уменьшить объём output binary. требует установки VC 8.0 SP1 runtimes. собрано с последней OpenSSL, тоже скомпилированной из исходников. Вархиве также версия без поддержки SSL.

Wget 1.11 beta 1: http://tinyurl.com/ywxbcy

Пытался попробовать сборку. Не запускается. Не установлен VC 8.0 SP1 runtimes.
Не могли бы дать ссылку где скачать. не могу найти.
Автор: makarei
Дата сообщения: 17.11.2007 08:57
chmaxim

Цитата:
Пытался попробовать сборку. Не запускается. Не установлен VC 8.0 SP1 runtimes.
Не могли бы дать ссылку где скачать. не могу найти.


Здесь (x86) и здесь (x64).
Автор: bk99ru
Дата сообщения: 20.11.2007 12:39
Как сделать, чтобы файл при скачивании переименовывался. Допустим, на сервере:

file.txt

а после скачивания (и в процессе скачивания) он был:

list.c
Автор: The Unforgiven
Дата сообщения: 20.11.2007 21:42
evgenych

Цитата:
Можно ли wget заставить сохранять с нормальным именем?


bk99ru

Цитата:
Как сделать, чтобы файл при скачивании переименовывался


Я сам нередко пользуюсь Wget, и буду рад, если меня кто-нибудь поправит.
По-моему, он не умеет ни то, ни другое
Автор: volodyalipkin
Дата сообщения: 21.11.2007 00:20
bk99ru
wget -o list.c http://somewhere.com/file.txt
Автор: hhr
Дата сообщения: 21.11.2007 01:47

Цитата:
Опера сохраняет с нормальным именем типа
Casa musica - Premium Standard - Ballroom Fascination Part1 (1-10).rar

Wget сохраняет что то типа такого
2666033&nCy54OmXrdwVf1Y7OTU0gwzAiTEX5fOs%2Bxs1lYZiBJs%3D

Можно ли wget заставить сохранять с нормальным именем?

есть подозрение, что стоит заюзать ключик --referer
опера есть браузер, а wget - всего лишь средство получение контента. так что включить голову и подумать, что делает браузер при закачке, и сымитировать такое поведение.


Цитата:
Как сделать, чтобы файл при скачивании переименовывался.

почитать мануал про ключик -O

Добавлено:

Цитата:
wget -o list.c http://somewhere.com/file.txt

ключ -o просто выведет лог закачки вместо консоли в файл list.c
не забываем про регистр
Автор: bk99ru
Дата сообщения: 23.11.2007 13:35

Цитата:
Цитата:Как сделать, чтобы файл при скачивании переименовывался.

почитать мануал про ключик -O


Спасибо, работает!
Автор: flymster
Дата сообщения: 25.11.2007 15:49
Всем привет. Стоит такая задача: проиндексировать сайт с помощью вгета, т.е. создать список URL ко всем файлам на сайте. Чтобы потом, допустим с другой тачки, удалив ненужные ссылки из файла, поставить список урл из этого файла на закачку (а это уже делается насколько я помню так: wget -i "url_filelist"). Подскажите, пожалуйста, есть ли возможность это сделать? Сколько я не искал, не нашёл в документации такой возможности - может плохо искал...
Спасибо.

Страницы: 12345678910111213141516

Предыдущая тема: Windows XP FAQ = обновлен 19 мая =


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.