我有一个只有三行长的批处理文件。
它的作用很简单:
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 已包含一项功能,该功能会接受命令并在其他地方运行它,而不是在文件所在的位置。
双击计划任务(或点击属性),转到“操作”选项卡,然后编辑操作。从那里您将看到一个带有“开始于(可选)”字段的弹出窗口。输入脚本所在的目录(或您希望它在哪个目录中运行)