Saltar al contenido

¿Cómo crear un archivo .BAT para descargar y descomprimir un archivo zip?

Solución:

Prueba este script híbrido bat / vbs

@echo off
 > %temp%~tmp.vbs echo sUrl = "http://www.unicontsoft.com/file.zip"
>> %temp%~tmp.vbs echo sFolder = "c:tempunzip"
>> %temp%~tmp.vbs (findstr "'--VBS" "%0" | findstr /v "findstr")
cscript //nologo %temp%~tmp.vbs
del /q %temp%~tmp.vbs
goto :eof

'--- figure out temp file & folder
With CreateObject("WScript.Shell")  '--VBS
    sTempFile = .Environment("Process").Item("TEMP") & "file.zip"  '--VBS 
    sTempFolder = .Environment("Process").Item("TEMP") & "file.zip.extracted"  '--VBS
End With    '--VBS

'--- download
WiTh CreateObject("MSXML2.XMLHTTP") '--VBS
    .Open "GET", sUrl, false    '--VBS
    .Send() '--VBS
    If .Status = 200 Then   '--VBS
        ResponseBody = .ResponseBody    '--VBS
        With Createobject("Scripting.FileSystemObject") '--VBS
            If .FileExists(sTempFile) Then  '--VBS
                .DeleteFile sTempFile   '--VBS
            End If  '--VBS
        End With    '--VBS
        With CreateObject("ADODB.Stream")   '--VBS
            .Open   '--VBS
            .Type = 1 ' adTypeBinary    '--VBS
            .Write ResponseBody '--VBS
            .Position = 0   '--VBS
            .SaveToFile sTempFile   '--VBS
        End With    '--VBS
    End If  '--VBS
End With    '--VBS

'--- extract
With CreateObject("Scripting.FileSystemObject") '--VBS
    On Error Resume Next    '--VBS
    .CreateFolder sFolder   '--VBS
    .DeleteFolder sTempFolder, True '--VBS
    .CreateFolder sTempFolder   '--VBS
    On Error GoTo 0 '--VBS
    With CreateObject("Shell.Application")  '--VBS
        .NameSpace(sTempFolder).CopyHere .NameSpace(sTempFile).Items    '--VBS
    End With    '--VBS
    .CopyFolder sTempFolder, sFolder, True  '--VBS
    .DeleteFolder sTempFile, True   '--VBS
    .DeleteFile sTempFile, True '--VBS
End With    '--VBS

Si realmente desea utilizar un archivo bat, puede echar un vistazo a: http://www.chami.com/tips/windows/062598W.html

El archivo por lotes utilizará una herramienta de línea de comandos llamada: URL2File

EDITAR: Su archivo por lotes debería verse algo así (necesita tener pkunzip u otra herramienta cmd-line (7-zip fe) instalada para eso)

@echo off
c:
cdfiles
URL2File http://www.server.com/file1.zip file1.zip

for %%f in (file1.zip) do pkunzip %%f c:userunziped_files%%f

Puede usar curl para descargar los archivos.

El manual incluye varios ejemplos

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *