Usuário com melhor resposta
Script para realizar download sozinho em um diretorio x

Pergunta
-
Ba galera.
estou com um problema porem o problema só acontece com o Windows 7 caso eu use o scritp que montei abaixo, o meu objetivo é que ao executar o vbs, o mesmo crie um diretorio no driver C, e logo em seguida chame o IE com um link de um arquivo para fazer download, e salvar neste caminho criado no C, com Windows XP rola legal, mais com o 7, quando o mesmo abre a janela do download, o cursor vai para a barra de tarefa me forçando mandar um alt+tab, e ja tentei mandar via sendkeys %({TAB}), mais mesmo assim o 7 nao compreende, e para na sequencia de tab para realizar a baixa do arquivo, alguem sabe como posso resolver isto no meu codigo ou alguem conhece algum codigo que realize este processo, crie uma pasta no C, e abra o IE em um link para iniciar um download, e salve neste caminho ?
codigo.
Option Explicit
Dim objShell, IE, objFSO, FSO, shellSet objShell = CreateObject("WScript.Shell")
Set IE = CreateObject("InternetExplorer.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set shell = createobject("wscript.shell")WScript.Sleep 1000
if fso.folderexists("C:\dados\") = false then
set objfolder = fso.createfolder("C:\dados\")
End if
IE.Visible = True
IE.Navigate "http://linknainternet/arquivo.exe"WScript.Sleep 9000
objShell.SendKeys "%({TAB})"WScript.Sleep 4000
objShell.SendKeys "{TAB}{TAB}{TAB}{ENTER}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}c:\dados\arquivo.exe{ENTER}"obrigado galera.
Respostas
-
Vc pode estar com um problema de infra, testei o script abaixo da minha casa e do trabalho e funcionou.(Donwload do winrar)
Repare que o script verifica o status da conexão (200), o power shell não verifica (pelo menos explicitamente).
Set oFS = CreateObject("Scripting.FileSystemObject") Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") URL = "http://www.rarlabs.com/rar/wrar401.exe" FileSaveLocation = "c:\downloads\wrar401.exe" oXMLHTTP.open "GET", URL, false oXMLHTTP.send() If oXMLHTTP.Status = 200 Then Set oADOStream = CreateObject("ADODB.Stream") oADOStream.Open oADOStream.Type = 1 'adTypeBinary oADOStream.Write oXMLHTTP.ResponseBody oADOStream.Position = 0 'Set the stream position to the start If oFS.Fileexists(FileSaveLocation) Then oFS.DeleteFile FileSaveLocation Set oFS = Nothing oADOStream.SaveToFile FileSaveLocation oADOStream.Close Set oADOStream = Nothing End if Set oXMLHTTP = Nothing
Fábio de Paula Junior- Marcado como Resposta Marcelo TI quarta-feira, 15 de junho de 2011 01:04
Todas as Respostas
-
Você pode utilizar o objeto MSXML2.XMLHTTP
Set oFS = CreateObject("Scripting.FileSystemObject") Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") URL = "http://linknainternet/arquivo.exe" FileSaveLocation = "C:\Dados\arquivo.exe" oXMLHTTP.open "GET", URL, false oXMLHTTP.send() If oXMLHTTP.Status = 200 Then Set oADOStream = CreateObject("ADODB.Stream") oADOStream.Open oADOStream.Type = 1 'adTypeBinary oADOStream.Write oXMLHTTP.ResponseBody oADOStream.Position = 0 'Set the stream position to the start If oFS.Fileexists(FileSaveLocation) Then oFS.DeleteFile FileSaveLocation Set oFS = Nothing oADOStream.SaveToFile FileSaveLocation oADOStream.Close Set oADOStream = Nothing End if Set oXMLHTTP = Nothing
Links:
http://blog.netnerds.net/2007/01/vbscript-download-and-save-a-binary-file/
http://www.vbforums.com/showthread.php?t=459294
Fábio de Paula Junior- Sugerido como Resposta Fábio JrModerator segunda-feira, 6 de junho de 2011 11:45
- Não Sugerido como Resposta Marcelo TI sábado, 11 de junho de 2011 15:22
- Sugerido como Resposta Fábio JrModerator segunda-feira, 13 de junho de 2011 12:23
-
Exemplo em PowerShell (.ps1)
$Dir_Destino = "C:\Dados" if (-not(Test-Path $Dir_Destino)){mkdir $Dir_Destino} $clnt = new-object System.Net.WebClient $url = "http://linknainternet/arquivo.exe" $file = "$Dir_Destino\arquivo.exe" $clnt.DownloadFile($url,$file)
Fábio de Paula Junior- Sugerido como Resposta Fábio JrModerator segunda-feira, 13 de junho de 2011 12:29
-
Fábio
Vc tem outra ideia, esta sua pode ate ser a solução mais pra min não rolou, pois quando salvo em vbs o conteudo todo, o antivirus apaga o arquivo, e gravando linha a linha, consegui chegar a mesma que esta gerando o sintoma.
oADOStream.SaveToFile FileSaveLocation
e mesmo se eu salvo o arquivo com o antivirus parado e compilo o vbs em exe e vou executar com o antivirus ligado, ele nao faz nada, e nao inicia o download.
obrigado.
-
-
Vc pode estar com um problema de infra, testei o script abaixo da minha casa e do trabalho e funcionou.(Donwload do winrar)
Repare que o script verifica o status da conexão (200), o power shell não verifica (pelo menos explicitamente).
Set oFS = CreateObject("Scripting.FileSystemObject") Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") URL = "http://www.rarlabs.com/rar/wrar401.exe" FileSaveLocation = "c:\downloads\wrar401.exe" oXMLHTTP.open "GET", URL, false oXMLHTTP.send() If oXMLHTTP.Status = 200 Then Set oADOStream = CreateObject("ADODB.Stream") oADOStream.Open oADOStream.Type = 1 'adTypeBinary oADOStream.Write oXMLHTTP.ResponseBody oADOStream.Position = 0 'Set the stream position to the start If oFS.Fileexists(FileSaveLocation) Then oFS.DeleteFile FileSaveLocation Set oFS = Nothing oADOStream.SaveToFile FileSaveLocation oADOStream.Close Set oADOStream = Nothing End if Set oXMLHTTP = Nothing
Fábio de Paula Junior- Marcado como Resposta Marcelo TI quarta-feira, 15 de junho de 2011 01:04
-
Fabio
vou marcar sua resposta como certa pos o codigo pode estar certo mais não me atende e o problema não é infraestrutura, o problema é que o antivirus apaga o arquivo quando eu vou salvar ele como vbs ou txt contendo estas palavras.
"SaveToFile FileSaveLocation"
valeu pela força
-