我正在尝试使用以下脚本(顺便通过批处理文件调用它)来解压缩Windows XP中的文件:
strZipFile ="C:\test.zip"                        'name of zip file
outFolder = "C:\"                                'destination folder of unzipped files
Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items()
Set objTarget = objShell.NameSpace(outFolder)
intOptions = 256
objTarget.CopyHere objSource, intOptions
问题是,在我计划使用它的地方我不会知道zip文件的完整路径,我将要知道的是它将与VBScript在同一个文件夹中,因此,考虑到这一点,可以用相对路径调用它吗?例:
strZipFile ="test.zip" 
这个例子不起作用(它给出了一个错误"Object required:'objShell.NameSpace(...)'"),所以当然我的意思是那些可行的东西.
Ekk*_*ner 10
WScript.ScriptFullName和FSO.GetParentFolder应该可以解决您的问题:
>> p = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
>>
>> WScript.Echo p
>>
M:\bin
更新Kiril的评论:
答案"是"的证据:
Option Explicit
Class cX
  Private Sub Class_Initialize()
    WScript.Echo "Class_Initialize"
  End Sub
  Private Sub Class_Terminate()
    WScript.Echo "Class_Terminate"
  End Sub
  Public Function f()
    f = "qed"
  End Function
End Class
WScript.Echo 1
Dim f : f = (New cX).f()
WScript.Echo 2
WScript.Echo f
输出:
cscript 15621395.vbs
1
Class_Initialize
Class_Terminate
2
qed
这应该为您提供 zip 文件的完整路径:
strZipFile ="test.zip" 
dim fso, fullPathToZip
set fso = CreateObject("Scripting.FileSystemObject")
fullPathToZip = fso.GetAbsolutePathName(strZipFile)
| 归档时间: | 
 | 
| 查看次数: | 19284 次 | 
| 最近记录: |