首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个.BAT文件来下载和解压zip文件?

问如何创建一个.BAT文件来下载和解压zip文件?
EN

Stack Overflow用户
提问于 2010-05-20 21:57:37
回答 6查看 16.2K关注 0票数 6

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

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

如果zip中的文件存在于目录中,则将其删除。

只使用本地窗口(xp、vista、win7等)、BAT函数和文件。

你可以添加代码示例吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-05-20 23:30:42

试试这个混合的bat/vbs脚本

代码语言:javascript
复制
@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
票数 5
EN

Stack Overflow用户

发布于 2010-05-20 22:07:02

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

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

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

代码语言:javascript
复制
@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\
票数 3
EN

Stack Overflow用户

发布于 2010-05-20 22:02:36

您可以使用curl下载文件。

manual包含几个示例

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2874387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档