如何创建.BAT文件以从HTTP服务器下载并解压缩zip文件?
我们有http://example.com/folder.zip
等链接和C:\Users\UserName\Some mixed Русский English Adress\
如果来自zip的文件存在于目录中,则为它们。
仅使用本机窗口(xp vista win7等)BAT功能和文件。
请您添加代码示例。
答案 0 :(得分:4)
尝试使用此混合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
答案 1 :(得分:3)
如果您真的想使用bat文件,可以查看:http://www.chami.com/tips/windows/062598W.html
批处理文件将使用名为:URL2File
的命令行工具编辑:您的批处理文件应该类似于(您需要安装pkunzip或其他cmd-line工具(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\
答案 2 :(得分:1)
答案 3 :(得分:1)
由于Windows 7包含Powershell恕我直言,您可以使用此powershell脚本:http://bwain-dump.blogspot.com/2009/01/powershell-script-to-unzip-many-files.html
如果不是PowerShell那么,我认为,没有本地方式可以做到这一点。您可以使用提供命令行的zip实用程序,例如7-zip
答案 4 :(得分:0)
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 :(得分:0)
如果您的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文件。我希望这能解决您的问题。