gpt4 book ai didi

vbscript - VBS 解压缩 - 需要对象 : 'objshell.NameSpace(...)'

转载 作者:行者123 更新时间:2023-12-05 00:18:05 25 4
gpt4 key购买 nike

我对 bash 或 vbs 知之甚少。我正在尝试制作一个脚本,它会自动解压缩一个名为“dungeon.zip”的 zip,其中包含我编写的一个小游戏。我想将它解压缩到一个名为 dungeon 的文件夹,该文件夹与 zip 文件所在的目录位于同一目录中。我使用了 this answer 中的代码,并将文件替换为我的文件:

strZipFile  = "dungeon.zip"
strUnzipped = "dungeon\"

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

正如他的回答,我从 cmd 文件运行 .vbs:

cscript UnzipZip.vbs

这是错误:

C:\Users\Brett\Downloads\UnzipZip.vbs(12, 1) Microsoft VBScript runtime error: Object required: 'objShell.NameSpace(...)'

知道如何解决这个问题吗?

最佳答案

WshShell.SpecialFolders("MyDocuments") 返回路径 没有尾随反斜杠。然后你将你的文件名附加到它。

您需要添加一个反斜杠。

strZipPath   = strDesktop & "\" & strZipFile
strUnzipPath = strDesktop & "\" & strUnzipped

编辑以添加提示:

使用 BuildPath() 函数(它是 FileSystemObject 的一部分)再也不用担心尾随反斜杠了。

strZipPath   = fso.BuildPath(strDesktop, strZipFile)
strUnzipPath = fso.BuildPath(strDesktop, strUnzipped)

关于vbscript - VBS 解压缩 - 需要对象 : 'objshell.NameSpace(...)' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com