我有一个源 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