vbscript 通过任务计划程序在 Windows 10 中打开 excel 文件

Posted

技术标签:

【中文标题】vbscript 通过任务计划程序在 Windows 10 中打开 excel 文件【英文标题】:vbscript to open an excel file in Windows 10 via Task Scheduler 【发布时间】:2015-11-18 13:47:46 【问题描述】:

我有一个通过任务计划程序执行的脚本文件,该文件在 Windows 7 中运行良好,但在 Windows 10 中无法运行。

这里是sn-p的代码:

Dim myxlApplication, myWorkBook

Set myxlApplication = CreateObject("Excel.Application")
myxlApplication.Visible = False
Set myWorkBook = myxlApplication.Workbooks.Open( emlAttach )
myxlApplication.DisplayAlerts = False
myWorkBook.Application.Run "Main.Main" 
myxlApplication.DisplayAlerts = True
myxlApplication.Quit
Set myxlApplication = Nothing

emlAttach 在脚本前面设置为绝对路径和带扩展名的文件名。

通过单击脚本文件执行此操作时,它可以完美运行。当它作为计划任务运行或强制从任务计划程序运行时,它会询问我想使用什么程序来打开文件。如果我选择 Excel,它会给我一个错误,告诉我该文件不存在。

该错误的文件扩展名是错误的,xlsx 与变量 xlsb 限定的内容相比。

【问题讨论】:

什么是命令行?您是明确使用wscript.exe myscript.vbs 还是让 .VBS 扩展名隐式记录开销可执行文件? (对于基于控制台的可执行文件,可能必须是 csript.exe) 目前我只是将它直接指向.vbs 并期望它能够工作。我只是改用 cscript 并且效果很好。非常感谢你的帮助!如果您想将其写为正式答案,我可以将其标记为您已回答,或者我可以自己写,无论您喜欢哪个。 =) 顺便说一下,我原来的方法,只指向vbs,在Win7中工作,但由于某种原因在Win10中不起作用。我不确定发生了什么变化。 Win7 机器可能有与 CSCRIPT 而不是 WSCRIPT 的 VBS 文件关联。或者可能 Win7 处理窗口输出的方式与 Win10 不同,并且不需要控制台版本;抱歉,我知道的不够准确。 【参考方案1】:

从任务计划程序或作为登录脚本(gpedit.msc ► 用户配置 ► Windows 设置 ► 脚本(登录/注销))执行 .VBS 将需要明确引用开销可执行文件。这将是基于窗口的返回的 WSCRIPT.EXE 或基于控制台的返回的 CSCRIPT.EXE。此外,如果 .VBS 默认与 WSCRIPT.EXE 关联,您可能需要将 CSCRIPT.EXE 指定为正在运行的进程以避免基于 Windows 的返回。

CSCRIPT.EXE c:\<path to vbs script file>\myScript.vbs

在 CMD 提示符下测试命令行。如果文件夹名称包含空格,您可能需要用引号将其括起来。

【讨论】:

以上是关于vbscript 通过任务计划程序在 Windows 10 中打开 excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

C# 计划任务系列

window计划任务

如何在 VBScript 中指定“以最高权限运行”?

window创建执行job的计划任务

Zabbix结合bat脚本与计划任务开启window远程桌面

从任务计划程序启动 excel 正在工作,现在失败