Windows 2008 R2 任务计划程序无法执行命令

Windows 2008 R2 Task Scheduler fails to execute commands

在我的 Windows Server 2008 R2 机器上,一个批处理文件被安排到 运行 使用任务计划程序。由于某种原因,只执行了批处理文件中的一部分命令;一些命令被忽略。

批处理文件如下所示:

cd s:
cd "S:\Reports\"
sqlcmd -S ipAddress -U login -P password -d dbname -i "S:\query.sql" -o "S:\Folder\Report.txt"
copy /A /Y "S:\Folder\Report.txt" Y:\

当我 运行 双击批处理文件时,一切都 运行 正常;但是当它从任务调度程序执行时,只有 sqlcmd 部分 运行 是正确的。 copy命令好像没有运行。即使我用 xcopymkdir 或任何其他命令替换 copy 命令,它也不会 运行.

即使我在批处理文件中更改命令的顺序,命令也不会 运行。但是当双击执行批处理文件时,一切运行都完美无缺

Y:\是同一登录下的映射驱动器。到目前为止输入我的问题后,我返回并 运行 进行了另一项测试。有趣的是,如果我用本地驱动器替换映射驱动器,一切似乎都正常。所以,在这一点上,映射驱动器似乎是问题所在。有解决这个问题的想法吗?

本质上,如何使用从 Task Scheduler 执行的批处理文件将文件复制或移动到映射的驱动器(不同的机器)?

S:Y: 可能是映射的网络驱动器,但它们是在用户会话的上下文中映射的。计划任务将 运行 在其自己的会话中,不会映射这些驱动器。

您应该改用共享的 UNC 路径 (\server\share),因为这在任一上下文中都应该有效(只要用户可以访问共享,计划任务就是 运行ning作为)。