![Windows Server 2012 无法从计划任务正确运行批处理文件](https://linux22.com/image/1560729/Windows%20Server%202012%20%E6%97%A0%E6%B3%95%E4%BB%8E%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1%E6%AD%A3%E7%A1%AE%E8%BF%90%E8%A1%8C%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6.png)
我有一个只有三行长的批处理文件。
它的作用很简单:
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 已包含一项功能,该功能会接受命令并在其他地方运行它,而不是在文件所在的位置。
双击计划任务(或点击属性),转到“操作”选项卡,然后编辑操作。从那里您将看到一个带有“开始于(可选)”字段的弹出窗口。输入脚本所在的目录(或您希望它在哪个目录中运行)