Windows Server 2012 无法从计划任务正确运行批处理文件

Windows Server 2012 无法从计划任务正确运行批处理文件

我有一个只有三行长的批处理文件。

它的作用很简单:

type C:\data\file.bak >> echo "" >> file.log.bak

cscript "C:\data\Move filesA.vbs"
cscript "C:\data\Move filesB.vbs"

基本上它所做的就是获取 file.bak 并将其附加到 file.log.bak。它们只是纯文本文件

cscripts 获取文件 .bak 并将其移动到服务器位置。

type C:\data\file.bak >> echo "" >> file.log.bak几个小时前刚刚添加.脚本运行每 15 分钟

当从用户运行(双击 .bat 文件)时,它运行良好并将文件复制到 file.log.bak 而没有任何问题

从任务运行时,它不会执行该type C:\data\file.bak >> echo "" >> file.log.bak行,但会执行 cscript

我唯一的猜测是 Windows 有一个批处理文件的缓存版本,并且它没有运行新的批处理文件。

type C:\data\file.bak >> echo "" >> file.log.bak有什么提示可以说明为什么它在执行计划任务时没有运行该线路?

答案1

确保计划任务在目录中运行。

使用相对文件路径时,从其他目录运行时它将不起作用。Microsoft 已包含一项功能,该功能会接受命令并在其他地方运行它,而不是在文件所在的位置。

双击计划任务(或点击属性),转到“操作”选项卡,然后编辑操作。从那里您将看到一个带有“开始于(可选)”字段的弹出窗口。输入脚本所在的目录(或您希望它在哪个目录中运行)

弹出修改目录中的开始窗口

相关内容