Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Ввод данных в код

Ответить
Настройки темы
Любой язык - Ввод данных в код

Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Есть код 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?
Заранее благодарен)

Отправлено: 23:35, 08-01-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 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

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

Отправлено: 07:08, 09-01-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

Отправлено: 07:35, 09-01-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Цитата binwatch@vk:
или вручную вводить через окно ввода »
Этот вариант я уже добавил к Вашему коду.

Отправлено: 08:33, 09-01-2013 | #4


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

Отправлено: 11:37, 09-01-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Отправлено: 13:10, 09-01-2013 | #6


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


10 URL

Последний раз редактировалось binwatch@vk, 09-01-2013 в 22:18.


Отправлено: 13:32, 09-01-2013 | #7


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

Отправлено: 22:19, 09-01-2013 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Пробуйте:
читать дальше »
Код: Выделить весь код
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 представляется более целесообразным.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:11, 10-01-2013 | #9


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Спасибо!

Отправлено: 10:48, 13-01-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Ввод данных в код

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] Ввод данных mj-333 Программирование и базы данных 4 31-08-2012 16:38
C/C++ - Ввод\вывод данных в файл Elfenlide Программирование и базы данных 5 05-05-2012 19:43
C/C++ - Помогите откорректировать ввод данных DOS Yoric Программирование и базы данных 3 17-04-2011 10:26
CMD/BAT - [решено] Ввод данных в переменную из txt-файла river123 Скриптовые языки администрирования Windows 1 10-01-2011 18:43
Ввод данных на T39 fantik Автоматическая установка Windows 2000/XP/2003 8 30-01-2007 15:32




 
Переход