如何在VBScript中使用GetObject

如何在VBScript中使用GetObject,vbscript,Vbscript,我对VBScript真的很陌生。这是我的代码,它创建了一个文本文件并向其附加了一个对象: Set objExcel = CreateObject("Scripting.FileSystemObject") objExcel.CreateTextFile("C:\mine.txt") 现在有谁能告诉我应该如何使用getObject(Pathname,[class])函数,因为我尝试了很多,但都没有成功?感谢和问候可以找到VBScript GetObject文档。下面是一个VBScript示例:

我对VBScript真的很陌生。这是我的代码,它创建了一个文本文件并向其附加了一个对象:

Set objExcel = CreateObject("Scripting.FileSystemObject")
objExcel.CreateTextFile("C:\mine.txt")

现在有谁能告诉我应该如何使用
getObject(Pathname,[class])
函数,因为我尝试了很多,但都没有成功?感谢和问候

可以找到VBScript GetObject文档。下面是一个VBScript示例:

Set objExcelFile = GetObject("C:\Scripts\Test.xls")
WScript.Echo objExcelFile.Name
objExcelFile.Close
此代码将获取C:\Scripts\Test.xls中包含的Excel工作簿对象。您可以使用TypeName()确认:

Set objExcelFile = GetObject("C:\Scripts\Test.xls")
WScript.Echo objExcelFile.Name
WScript.Echo TypeName(objExcelFile)
objExcelFile.Close
输出将是:

test.xls
Workbook
如果指定的Excel工作簿不存在,脚本将返回错误。如果Excel实例已在运行,则可以使用以下代码获取对其的引用:

Set objExcel = GetObject( , "Excel.Application")

For Each objWorkbook In objExcel.Workbooks
    WScript.Echo objWorkbook.Name
Next

objExcel.Quit
注意“Excel.Application”前面的逗号。该脚本获取对正在运行的Excel应用程序的引用,列出打开的工作簿名称并退出Excel。如果没有运行Excel实例,您将收到一个错误。这也是为什么不能使用GetObject()获取Scripting.FileSystemObject的实例-没有正在运行的实例

如果内存中已运行实例og Scripting.FileSystemObject,则可以使用GetObject。请尝试以下代码:

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFso1 = GetObject("", "Scripting.FileSystemObject")

WScript.Echo TypeName(objFso)
WScript.Echo TypeName(objFso1)

您可以看到,首先需要使用CreateObject(),当FileSystemObject运行时,可以获取对它的引用,但这没有多大意义,因为您已经有了对它的引用(objFso)。因此,使用CreateObject()创建FileSystemObject的实例。

注意,
GetObject()
也接受参数中的以下名字:

“iis:
-允许程序员查看和更改物理连接到此计算机的任何Web服务器的关键iis功能。

“java:
-返回对使用java虚拟机在%system root%\java\trustlib文件夹中找到的未注册java对象的引用。


“脚本:

除非对象是单个实例,否则如果将
GetObject
函数的路径名(第一个参数)指定为零长度字符串(但不能忽略它),其效果类似于
CreateObject
,因此
GetObject
将返回对象的新实例,而不是当前实例。如前所述,请使用VBScript的
Set-objExcel=GetObject(,“Excel.Application”)
。但不要使用
Set-objExcel=WScript.GetObject(,“Excel.Application”)
,它会抱怨缺少的参数。我以前从未意识到这种差异。