【问题标题】:VBS delete folder from Zipped folderVBS 从压缩文件夹中删除文件夹
【发布时间】:2017-03-06 14:16:36
【问题描述】:

我正在尝试使用 VBScript 删除已压缩的文件夹。 zip 文件还有其他文件夹和文件。

编辑开始:基本代码来自:How to delete files from zip with VBScript 结束编辑

这是我尝试删除它的脚本的本地化示例:

zipfile = "D:\testFolder\zippers\TestIt\New folder\your.zip"
foldername   = "New folder"
destination     = "D:\testFolder\zippers\TestIt\New folder"

Set app = CreateObject("Shell.Application")
For Each f In app.NameSpace(zipfile).Items
  If f.Name = foldername Then
    app.Namespace(destination).MoveHere f, FOF_NOCONFIRMATION
  End If
Next

Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder fso.BuildPath(destination, foldername), True

遗憾的是,ZIP 中的文件夹仍然存在。所以 MoveHere 看起来像是 CopyHere... 很奇怪

有人可以帮忙吗? PS:没有delete-folder标签,只有一个delete-file标签...

【问题讨论】:

标签: vbscript zip


【解决方案1】:

如果您在复制 someone else's code 时给出适当的归属,那就太好了。

话虽如此,Shell.Application 对象似乎无法从 zip 存档中删除文件夹。在文件夹上调用 MoveFile 会将嵌套文件夹中的所有文件移出存档,但会留下一个空的(子)文件夹树。

要完全删除嵌套文件夹,您需要使用 3rd 方工具,例如 7-zip

Function qq(s) : qq = """" & s & """" : End Function

Set sh = CreateObject("WScript.Shell")
sh.Run "C:\path\to\7z.exe d " & qq(zipfile) & " " & qq(foldername), 0, True

【讨论】:

  • 很抱歉。你是对的,我只是不记得在开始篡改之前我从哪里得到基本代码......谢谢他的提示,但遗憾的是我正在尝试在没有任何第三方程序的情况下做到这一点,否则我会只需使用 7zip。哦,好吧,比不可能挑战 ;) 谢谢你们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 2010-09-05
  • 1970-01-01
相关资源
最近更新 更多