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

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

我有一个源 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 应用程序以外的其他 zip 应用程序。

答案1

DelUnzip.cmd:

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

解压Zip.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

答案2

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

并且还尝试创建一个能够进行压缩、解压以及其他一些功能的常用工具。 压缩文件 - 它不需要额外的文件,.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

相关内容