首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 10中的任务调度程序中的VBS脚本不能正常工作

Windows 10中的任务调度程序中的VBS脚本不能正常工作
EN

Stack Overflow用户
提问于 2016-06-15 21:01:16
回答 2查看 3.2K关注 0票数 0

我有一个windows服务器,用于为邮政信件执行邮件合并。外部服务器生成xls数据表,并将它们与JSON文件一起发送到我的windows服务器,并提供进一步的说明:

  • 要合并的字母(docx文件)
  • 用来发送合并信件的PDF的电子邮件地址.

脚本的工作方式如下: 1.经常(每60秒)监视JSON文件的目录。如果有一个->文件,解析它。-> 3.查找与该->文件相关的XLS文件。运行VBA/ ->宏将XLS和信件合并为PDF -> 5。通过电子邮件将-> 6发送到适当的联系人->6。将XLS文件移动到已处理的文件夹7。将->文件移动到PRocessed文件夹。

如果我从命令行手动运行它,它就能正常工作。但是,如果我从Task运行它,则使用" run“,或者在机器重新启动或给定用户登录脚本失败时自动运行。步骤1、2和3工作。VBA代码/宏无法工作。

我希望这可以通过任务调度器的配置来解决。下面是我当前的设置:

脚本从bat文件中运行,消息脚本保持一个CMD窗口打开,该窗口解释脚本正在做什么:

代码语言:javascript
复制
cscript C:\automerge\message.vbs
cscript C:\automerge\automerge.vbs >> C:\automerge\logs.log

任务计划程序设置:只在用户登录时运行,并配置为Windows 10的最高权限运行(也尝试使用7和8)

触发器:在启用登录时触发

操作:启动一个程序详细信息:"C:\AutoMerge\JSON Watch.bat“

条件:只有当计算机处于交流电源停止时,如果计算机切换到电池电源,才启动任务

设置:允许任务按需运行,如果正在运行的任务没有在请求时结束,则强制其停止

有人能给我建议如何更改计划的任务或批处理文件使其工作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-17 15:59:07

原来面条是对的--这是代码中的一些东西。

我创建了一个文件系统对象,并使用它获得了一个File.Name。然后,我将这个File.Name(没有路径)传递给一个解析文件中JSON的函数。当我手动运行它时,它工作得很好。

代码语言:javascript
复制
JSONExists(File.Name)

为了从中正确运行,我必须确保它传递了整个文件名,包括路径。

代码语言:javascript
复制
FPath = "C:\Automerge\"    
JSONExists(FPath & File.Name)

我不太清楚为什么我需要任务调度器的整个路径,而不是当我手动运行时,但至少现在我有一个很好的经验法则。

票数 0
EN

Stack Overflow用户

发布于 2016-06-16 03:17:30

尝试像这样执行,而不是直接调用批处理文件。

32位

代码语言:javascript
复制
Action: "%SYSTEMROOT%\system32\cmd.exe /c C:\AutoMerge\JSON Watch.bat"

或64位

代码语言:javascript
复制
Action: "%SYSTEMROOT%\SysWOW64\cmd.exe /c C:\AutoMerge\JSON Watch.bat"

如果是64位.更新您的脚本以执行%SYSTEMROOT%\SysWOW64\cscript.exe

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37845701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档