Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Ввод данных в код (http://forum.oszone.net/showthread.php?t=250952)

binwatch@vk 08-01-2013 23:35 2062133

Ввод данных в код
 
Есть код vbs :
Код:

Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'подключение
oXMLHTTP.Open "GET", "http://sait.ru/index.html", 0
 'получение файла
oXMLHTTP.Send Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3 'разрешение на чтение и запись
oADOStream.Type = 1 'тип данных - Binary
oADOStream.Open oADOStream.Write oXMLHTTP.responseBody
 'сохранение (с перезаписью файла при необходимости)
oADOStream.SaveToFile "C:\Users\Admin\Desktop\1.html", 2
 'сохранение файла в прописанной папке

Он скачивает страницу сайта и сохраняет в прописанном месте.
Можно ли создать такой скрипт, чтобы адрес сайта в данном коде можно было прописывать из диалогового окна bat ? или vbs?
Заранее благодарен)

Iska 09-01-2013 07:08 2062220

Цитата:

Цитата binwatch@vk
Можно ли создать такой скрипт, чтобы адрес сайта в данном коде можно было прописывать из диалогового окна bat ? или vbs? »

Можно.
читать дальше »
Код:

strURL = Trim(InputBox("Input URL:"))

If Len(strURL) <> 0 Then
        Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
        'подключение
        oXMLHTTP.Open "GET", strURL, 0
        'получение файла
        oXMLHTTP.Send Set oADOStream = CreateObject("ADODB.Stream")
        oADOStream.Mode = 3 'разрешение на чтение и запись
        oADOStream.Type = 1 'тип данных - Binary
        oADOStream.Open oADOStream.Write oXMLHTTP.responseBody
        'сохранение (с перезаписью файла при необходимости)
        oADOStream.SaveToFile "C:\Users\Admin\Desktop\1.html", 2
        'сохранение файла в прописанной папке
End If


А можно и указывать параметром скрипта. Откуда будут браться адреса страниц — буквально?

binwatch@vk 09-01-2013 07:35 2062230

Адрес страницы будет можно или вручную вводить через окно ввода или в отдельный файл прописывать,без разницы. Напишите тот вариант который проще)

Iska 09-01-2013 08:33 2062249

binwatch@vk, Вы меня не поняли. Я не спрашивал куда вводить адрес. Я спрашивал — откуда он берётся? Вот Вы откуда берёте эти адреса страниц? Опишите буквально.

Цитата:

Цитата binwatch@vk
или вручную вводить через окно ввода »

Этот вариант я уже добавил к Вашему коду.

binwatch@vk 09-01-2013 11:37 2062357

Из текстового файла. Можете написать ,чтобы исходный код брал адрес сайта из текстового файла при своем выполнении .
Извиняюсь за создавшуюся путаницу)
Заранее благодарен.

Iska 09-01-2013 13:10 2062403

Могу. Сколько там будет URL?

binwatch@vk 09-01-2013 13:32 2062427

10 URL

binwatch@vk 09-01-2013 22:19 2062860

Для одного url можете написать?

Iska 10-01-2013 08:11 2063045

Пробуйте:
читать дальше »
Код:

Option Explicit

Dim strURLFile

If WScript.Arguments.Count = 1 Then
        strURLFile = WScript.Arguments.Item(0)
       
        With WScript.CreateObject("Scripting.FileSystemObject")
                If .FileExists(strURLFile) Then
                        With .OpenTextFile(strURLFile)
                                Do Until .AtEndOfStream
                                        GetContentFromURLAndSaveToFile Trim(.ReadLine())
                                Loop
                               
                                .Close
                        End With
                Else
                        WScript.Echo "File [" & strURLFile & "] not found"
                        WScript.Quit 2
                End If
        End With
Else
        WScript.Echo "Usage: wscript.exe " & WScript.ScriptName & " <URL's file>"
        WScript.Quit 1
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
Sub GetContentFromURLAndSaveToFile(strURL)
        Const adTypeBinary          = 1
        Const adModeReadWrite      = 3
        Const adSaveCreateOverWrite = 2
       
        Dim arrContent
        Dim strFileName
        Dim strChar
       
        With WScript.CreateObject("Microsoft.XMLHTTP")
                .open "GET", strURL, False
                .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
                .send
               
                arrContent = .responseBody
        End With
       
        strFileName = strURL
       
        For Each strChar In Array("<", ">", ":", """", "/", "\", "|", "?", "*")
                strFileName = Replace(strFileName, strChar, "_")
        Next
       
        With WScript.CreateObject("ADODB.Stream")
                .Type = adTypeBinary
                .Mode = adModeReadWrite
                .Open
               
                .Write arrContent
                .SaveToFile strFileName, adSaveCreateOverWrite
               
                .Close
        End With
End Sub
'=============================================================================


В самом простом варианте — достаточно просто перетащить файл с URL'ами, например, такой:
Код:

http://www.script-coding.com/
http://www.oszone.net/
http://www.ya.ru/
https://www.google.ru/webhp

на приведённый скрипт в Проводнике.

P.S. На мой взгляд, использование wget или cURL представляется более целесообразным.

binwatch@vk 13-01-2013 10:48 2065641

Спасибо!


Время: 01:02.

Время: 01:02.
© OSzone.net 2001-