Показать полную графическую версию : [решено] Скачать файл из интернета через переменную ссылку.
Ruslan-kam
11-09-2012, 14:07
Не знаю правильно ли выразился, но в краце опишу что хочу получить.
Необходимо скачать установщик базы данных города 2gis ссылка которого меняется от месяца к месяцу. Допустим на данный момент последняя база скачивается по этой ссылке
http://download.2gis.ru/arhives/2GISData_Nizhnevartovsk-76.0.0.msi
Через месяц скорей всего будет
http://download.2gis.ru/arhives/2GISData_Nizhnevartovsk-77.0.0.msi
Для скачки использую cmd файл с такким содержанием
wget -O %~d0\!install\!WPI\Install\Office\2GISData_Nizhnevartovsk.msi -A *Nizhnevartovsk* -r -l 0 -nd http://download.2gis.ru/arhives/2GISData_Nizhnevartovsk-76.0.0.msi
Если указать
wget -O %~d0\!install\!WPI\Install\Office\2GISData_Nizhnevartovsk.msi -A *Nizhnevartovsk* -r -l 0 -nd http://download.2gis.ru/arhives/ то выбрасывает ошибку, сайт не даёт скачать структуру каталога.
Помогите придумать счётчик который каждый месяц бы прибавлял в ссылке единицу к версии.
Через месяц скорей всего будет »
А если не будет? На html-странице есть ссылка на эту самую текущую версию?
Ruslan-kam
11-09-2012, 14:59
Iska, да есть. База данных Нижневартовска формат msi http://nizhnevartovsk.2gis.ru/how-get/download/
Ruslan-kam, тогда есть смысл парсить эту страницу, например, при помощи DOM, и только затем, получив корректную текущую ссылку, загружал её.
Ruslan-kam
11-09-2012, 17:50
Iska, эээхххх тёмный лес я в этом...(
Можно на PowerShell:
$url = "http://nizhnevartovsk.2gis.ru/how-get/download/"
$wc = New-Object Net.WebClient
$str = $wc.DownloadString($url).split("`n") | Select-String '(http://.+2GISData_Nizhnevartovsk.+msi)" '
$durl = $str.Matches[0].Groups[1].Value
$name = $durl.split("/")[-1]
$wc.DownloadFile($durl,$name)
Ruslan-kam
11-09-2012, 21:36
Kazun, не получается. Создал файл с расширением .psc1, запускаю, окно PowerShell распахивается и тут же закрывается.
Сохраните под расширением ps1 и запускайте powershell -file C:\script.ps1
Ruslan-kam
12-09-2012, 09:06
Kazun, тоже нет. Выскакивает PowerShell через секунду в нём появляются красные строки, прочесть не успеваю окно захлопывается. У меня Win7, установленная из оригинального образа.
powershell -executionpolicy bypass -file C:\script.ps1
Ruslan-kam
12-09-2012, 10:31
Kazun, точно также, как и в предыдущий раз.
powershell -executionpolicy bypass -noexit -command "&{C:\script.ps1}"
Ruslan-kam
12-09-2012, 18:49
Отсутствует выражение после одноместного оператора "+".
C:\script.ps1:1 знак:2
+ + <<<< ACQ-url +AD0- +ACI-http://nizhnevartovsk.2gis.ru/how-get/download/+AC I-
+ CategoryInfo : ParserError: (+:String) [], ParseException
+ FullyQualifiedErrorId : MissingExpressionAfterOperator PS C:\>
Проблема в сохранении скрипта,побилась кодировка.
Ruslan-kam
13-09-2012, 09:51
Kazun, да теперь заработало. Я запусаю скрипт powershell через cmd, можно ли теперь сделать так чтобы скрипт power shell передавал ссылку в cmd, а cmd в свою очередь передавала её в wget?
Просто в wget наглядно отображается процесс загрузки, а powershell безмолвное окно.
Можно,но не проще добавить строчку про wget в скрипт?
Ruslan-kam
13-09-2012, 10:09
если можно, то конечно так лучше.
И ещё нужно что бы скрипт качал не в ту папку в которой находится, а папку которую я пропишу в скрипте.
Напишите полную команду с wget.
Ruslan-kam
13-09-2012, 10:34
@Echo Off
wget -O %~d0\!install\!WPI\Install\Office\2GISShell.msi -A 2GISShell* -r -l 0 -nd http://www.2gis.ru/distributive/shell/last/
wget -O %~d0\!install\!WPI\Install\Office\2GISData_Nizhnevartovsk.msi -A *Nizhnevartovsk* -r -l 0 -nd http://download.2gis.ru/arhives/2GISData_Nizhnevartovsk-76.0.0.msi
$path = "$((Get-Item $MyInvocation.MyCommand.Path).PsDrive.Root)!install\!WPI\Install\Office\2GISData_Nizhnevartovsk.msi"
$url = "http://nizhnevartovsk.2gis.ru/how-get/download/"
$wc = New-Object Net.WebClient
$str = $wc.DownloadString($url).split("`n") | Select-String '(http://.+2GISData_Nizhnevartovsk.+msi)" '
$durl = $str.Matches[0].Groups[1].Value
wget -O $path -A "*Nizhnevartovsk*" -r -l 0 -nd $durl
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.