跨多个版本的Windows将用户目录中的文件从源解压缩到目标


2

我有一个源zip文件,位于用户的“我的文档”目录中。保证永远在那里。我正在寻找一种方法来创建一个批处理或脚本,让我将该文件解压缩到用户目录中的目标目录。如果目标已经存在,则应首先删除现有目标文件夹。

示例流程:

srcFile = %user%\My Documents\file.zip
destFolder = %user%\My Documents\Unzipped\
if destFolder exists, delete it
unzip srcFile to destFolder

我正在寻找适用于Windows XP和Windows 7的解决方案。如果可能的话,我不想使用Windows XP / 7中内置的zip应用程序。


1
我们不是在这里作为脚本编写服务。;)那么,到目前为止你得到了什么,你在哪里被困?
Ƭᴇcʜιᴇ00713年

你的最后一句话有问题。压缩文件夹功能不仅很糟糕,而且无法从命令行AFAIK访问。您可能必须从批处理文件中调用VBS脚本。如果您使用第三方命令行unzipper,您想要做的事情实际上是微不足道的。
Karan

Answers:


2

DelUnzip.cmd:

RD /S /Q "%USERPROFILE%\My Documents\Unzipped"
cscript UnzipZip.vbs

UnzipZip.vbs:

strZipFile  = "\file.zip"
strUnzipped = "\Unzipped\"

Sub UnZip(ExtractTo,ZipFile)

Set fso = CreateObject("Scripting.FileSystemObject") 
    If NOT fso.FolderExists(ExtractTo) Then 
       fso.CreateFolder(ExtractTo) 
End If 

Set objShell = CreateObject("Shell.Application") 
Set FilesInZip=objShell.NameSpace(ZipFile).items 

ObjShell.NameSpace(ExtractTo).CopyHere(FilesInZip) 
Set fso = Nothing 
Set objShell = Nothing 
End Sub

set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("MyDocuments")

strZipPath   = strDesktop & strZipFile
strUnzipPath = strDesktop & strUnzipped

UnZip strUnzipPath , strZipPath

我在最后一行收到错误:“调用Sub时不能使用括号”。有什么想法修复?
迈克尔曼库斯

@MichaelMankus对不起,修好了。
STTR 2013年

1

在这里,我试图总结一下如何在没有外部工具的情况下压缩文件和文件夹的方法

并且还尝试创建一个常用的工具,能够压缩解压缩和更多功能。 ZIPJS.BAT - 它不需要额外的文件,.vbs也不需要创建临时文件。所有这些文件都在一个中,并且像普通的bat文件一样调用。

要解压缩文件夹,您可以使用:

// unzip content of a zip to given folder.content of the zip will be preserved (-keep yes).Destination will be overwritten (-force yes)
call zipjs.bat unzip -source C:\myDir\myZip.zip -destination C:\MyDir -keep yes -force yes

批次在调用zipjs.bat后关闭你知道如何解决这个问题吗?
CreativiTimothy

@CreativiTimothy您是否call在代码段中添加了开头?
npocmaka

是的,就像这样:调用zipjs.bat unzip -source C:\ Users \ Creat \ Downloads \ autoduel.zip -destination C:\ Users \ Creat \ Google Drive \ Duel Links \ Assembly-CSharp.dll -keep yes -force yes
CreativiTimothy


1
我刚刚意识到它与代码本身无关,但是zip已损坏,因为我试图在需要身份验证的网站上使用web调用请求下载(用户名/密码)
CreativiTimothy于
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.