You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VBScript实现文件夹静默压缩?(解压已解决)

解决VBScript静默压缩文件夹不显示进度框的问题

要实现完全静默的压缩操作,需要给CopyHere方法传递正确的参数组合,同时确保zip文件创建完成后再执行复制逻辑。以下是修改后的可用方案:

修改后的压缩脚本

wvar1 = WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) & "\Dumps"
wvar2 = WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) & "\Dumps.zip"
set wshell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

ArchiveFolder wvar2, wvar1

Sub ArchiveFolder (zipFile, sFolder)
    With CreateObject("Scripting.FileSystemObject")
        zipFile = .GetAbsolutePathName(zipFile)
        sFolder = .GetAbsolutePathName(sFolder)

        ' 创建空的zip文件结构
        With .CreateTextFile(zipFile, True)
            .Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, chr(0))
        End With
    End With

    ' 等待zip文件完全写入磁盘,避免后续操作异常
    WScript.Sleep 500

    With CreateObject("Shell.Application")
        ' 组合参数实现静默:4(隐藏进度框)+16(自动确认覆盖)+1024(隐藏错误提示)
        .NameSpace(zipFile).CopyHere .NameSpace(sFolder).Items, 4 + 16 + 1024

        Do Until .NameSpace(zipFile).Items.Count = .NameSpace(sFolder).Items.Count
            WScript.Sleep 1000 
        Loop
    End With
End Sub

关键修改说明

  1. 参数组合生效:
    单独使用4参数可能被系统交互逻辑覆盖,组合以下参数可确保静默:

    • 4:不显示压缩进度对话框
    • 16:遇到文件覆盖等确认框时自动选择“全部是”
    • 1024:压缩出错时不弹出错误提示界面
      将这些参数相加后传递给CopyHere,就能实现无弹窗的静默压缩。
  2. 增加文件就绪等待:
    创建空zip文件后,添加WScript.Sleep 500等待文件系统完成文件写入,避免后续操作因文件未就绪导致参数失效或异常。

内容的提问来源于stack exchange,提问作者Tathastu Pandya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:36:28