我正在尝试创建一个 VBS 文件,该文件可以将 ZIP 文件的内容从相对路径提取到绝对文件路径目标。我试图创建这个 VBS 文件的原因是因为我的总体目标是通过 iExpress 创建一个 EXE 文件,它将一堆代码复制到用户的计算机并同时安装 nodeJS。
我对采用这种方法的想法是创建一个批处理脚本,将代码目录复制到用户计算机上的设定位置,然后执行一个 MSI 文件来安装 nodeJS。我已经能够得到一个可以做到这一点的批处理脚本,但现在我想把它全部打包成一个 EXE。为此,我认为我需要将代码目录放入 ZIP 文件中,以便将其添加到 EXE 文件中,然后我的 EXE 需要一些功能来提取它。
要添加此功能,我的研究似乎表明 VBS 是最好的选择(特别是考虑到我希望还可以补偿对 PowerShell cmdlet 的访问受限的用户)。搜索似乎表明这种类型的文件是为了我想做的事情。
ZipFile="test.zip"
ExtractTo="C:\test-install\test"
Set fso = CreateObject("Scripting.FileSystemObject")
sourceFile = fso.GetAbsolutePathName(ZipFile)
destFolder = fso.GetFolder(ExtractTo)
Set objShell = CreateObject("Shell.Application")
Set FilesInZip=objShell.NameSpace(sourceFile).Items()
objShell.NameSpace(destFolder).copyHere FilesInZip, 16
Set fso = Nothing
Set objShell = Nothing
Set FilesInZip = Nothing
尽管在这条线上这似乎不起作用......
objShell.NameSpace(destFolder).copyHere FilesInZip, 16
...它向我抱怨 destFolder 需要成为一个对象。我不太确定要更改什么来修复此错误(我对 VBS 不太熟悉),互联网上的大多数示例最初将 ExtractTo 变量设置为相对文件路径并运行命令将其转换为绝对文件路径。我不想这样做,因为当 iExpress 将其全部转换为 EXE 时,我的理解是相对文件路径从某个随机 TEMP 文件夹中开始。
任何关于我的 VBS 文件中的错误的指导,或指示提取 ZIP 文件的更好路径将不胜感激,谢谢。