用VBScript结束Word时,会留下临时Word文档

用VBScript结束Word时,会留下临时Word文档,vbscript,ms-word,Vbscript,Ms Word,我无法用VBScript关闭Word文档。当Word文档(通过脚本)打开时,Word将创建一个临时~$文件。例如,打开test.docx还会创建一个名为~$test.docx的临时文件。我知道这很正常。但问题是,当我关闭test.docx时,主文档test.docx会正确关闭,但~$test.docx仍处于打开状态。由于要处理许多文件,很快就会有大量的临时文件。它们作为后台进程显示在任务管理器中。关闭文件时我做错了什么?我使用的代码是: Set objWord = CreateObject("W

我无法用VBScript关闭Word文档。当Word文档(通过脚本)打开时,Word将创建一个临时~$文件。例如,打开test.docx还会创建一个名为~$test.docx的临时文件。我知道这很正常。但问题是,当我关闭test.docx时,主文档test.docx会正确关闭,但~$test.docx仍处于打开状态。由于要处理许多文件,很快就会有大量的临时文件。它们作为后台进程显示在任务管理器中。关闭文件时我做错了什么?我使用的代码是:

Set objWord = CreateObject("Word.Application")
objWord.Visible = False
objWord.DisplayAlerts = 0
objWord.Documents.Open FilePath 'FilePath previously set

'Do stuff (reading properties)

objWord.Documents.Close 0 'Close opened documents without saving
objWord.Quit
Set objWord = Nothing

可能是
objWord
变量是对Word应用程序的“全局”引用,定义在脚本顶部的某个位置。
只要调用程序处于活动状态,此全局引用就会保持不变,因为在调用程序处于活动状态时,操作系统不会结束自动应用程序

如果是这种情况,那么将代码包装到函数中并在其中定义单词object应该可以解决这个问题,因为这样对象就具有局部作用域,并且不存在于函数之外

大概是这样的:

Function DoWordThings(FilePath)
    Dim oWord
    Set oWord = CreateObject("Word.Application")
    oWord.Visible = False
    oWord.DisplayAlerts = 0
    oWord.Documents.Open FilePath 'FilePath now used as parameter to the function

    'Do stuff (reading properties and returning them to the caller of this function)

    oWord.Documents.Close 0 'Close opened documents without saving
    oWord.Quit
    Set oWord = Nothing
End Function

你用剪贴板吗?尝试删除最后两行。