【问题标题】:How to create a .BAT file to download and unpack a zip file?如何创建 .BAT 文件以下载和解压缩 zip 文件?
【发布时间】:2011-02-21 21:29:42
【问题描述】:

如何创建 .BAT 文件以从 HTTP 服务器下载和解压缩 zip 文件?

我们有http://example.com/folder.zip 之类的链接和C:\Users\UserName\Some mixed Русский English Adress\ 之类的绝对文件夹链接

如果 zip 中的文件存在于目录中,请覆盖它们。

仅使用本机 Windows(xp vista win7 等)BAT 函数和文件。

请您添加代码示例。

【问题讨论】:

    标签: windows http batch-file zip unpack


    【解决方案1】:

    试试这个混合 bat/vbs 脚本

    @echo off
     > %temp%\~tmp.vbs echo sUrl = "http://www.unicontsoft.com/file.zip"
    >> %temp%\~tmp.vbs echo sFolder = "c:\temp\unzip"
    >> %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
    

    【讨论】:

    • 是否可以在没有windows windows的情况下进行下载复制过程?
    【解决方案2】:

    如果你真的想使用 bat 文件,你可以看看:http://www.chami.com/tips/windows/062598W.html

    批处理文件将使用名为:URL2File 的命令行工具

    编辑:您的批处理文件应该类似于(您需要为此安装 pkunzip 或其他命令行工具(7-zip f.e.))

    @echo off
    c:
    cd\files
    URL2File http://www.server.com/file1.zip file1.zip
    
    for %%f in (file1.zip) do pkunzip %%f c:\user\unziped_files\%%f\
    

    【讨论】:

    • 从 zip 文件中提取\解压缩没有任何内容。那么,请您添加代码示例。
    • 据我所知“否”(至少对于 Windows XP),对于 Vista 可能会有一些东西......
    【解决方案3】:

    您可以使用curl 下载文件。

    manual 包含几个示例

    【讨论】:

      【解决方案4】:

      download_and_unzip.bat:

      powershell -command "Start-BitsTransfer -Source http://example.com/folder.zip -Destination folder.zip"
      powershell -command "Expand-Archive folder.zip folder/to/extract"
      

      下载folder.zip 到当前目录(或任何其他 - 必须存在)。将folder.zip 提取到folder/to/extract(自动创建)。

      【讨论】:

        【解决方案5】:

        由于 Windows 7 包含 Powershell 恕我直言,您可以使用这个 powershell 脚本:http://bwain-dump.blogspot.com/2009/01/powershell-script-to-unzip-many-files.html

        如果不是powershell,我认为,没有本地方法可以做到这一点。您可以使用提供命令行的 zip 实用程序,例如 7-zip

        【讨论】:

          【解决方案6】:

          如果您的 PC 与任何其他 Windows PC 一样,它应该安装了 powershell。如果您尝试从 cmd 行或批处理脚本运行它,没问题,您可以将 powershell 这个词放在任何命令的前面,让它通过 cmd 提示控制台运行它!首先,您应该将希望人们下载的文件上传到投递箱。然后获取一个共享链接,将 www.dropbox.com 替换为 dl.dropboxusercontent.com 以创建不需要人们单击下载按钮的直接链接。然后编写这样的脚本:

          start /MAX *drop box link*
          timeout 3 >nul
          powershell Expand-Archive C:\Users\%USERNAME%\Downloads\*file name* C:/
          

          这将下载文件并将其解压缩到 C:/ 驱动器 它很简单,完全符合它的需要,不适用于 .RAR 文件。我希望这能解决你的问题。

          【讨论】:

          • 我非常惊讶其他人都说你需要大量的伪造代码,或者下载一个真正的解压缩文件,windows 已经内置了一切。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-07
          • 1970-01-01
          • 2022-01-18
          相关资源
          最近更新 更多