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
命令好像没有运行。即使我用 xcopy
或 mkdir
或任何其他命令替换 copy
命令,它也不会 运行.
即使我在批处理文件中更改命令的顺序,命令也不会 运行。但是当双击执行批处理文件时,一切运行都完美无缺
Y:\
是同一登录下的映射驱动器。到目前为止输入我的问题后,我返回并 运行 进行了另一项测试。有趣的是,如果我用本地驱动器替换映射驱动器,一切似乎都正常。所以,在这一点上,映射驱动器似乎是问题所在。有解决这个问题的想法吗?
本质上,如何使用从 Task Scheduler 执行的批处理文件将文件复制或移动到映射的驱动器(不同的机器)?
S:
和 Y:
可能是映射的网络驱动器,但它们是在用户会话的上下文中映射的。计划任务将 运行 在其自己的会话中,不会映射这些驱动器。
您应该改用共享的 UNC 路径 (\server\share
),因为这在任一上下文中都应该有效(只要用户可以访问共享,计划任务就是 运行ning作为)。
在我的 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
命令好像没有运行。即使我用 xcopy
或 mkdir
或任何其他命令替换 copy
命令,它也不会 运行.
即使我在批处理文件中更改命令的顺序,命令也不会 运行。但是当双击执行批处理文件时,一切运行都完美无缺
Y:\
是同一登录下的映射驱动器。到目前为止输入我的问题后,我返回并 运行 进行了另一项测试。有趣的是,如果我用本地驱动器替换映射驱动器,一切似乎都正常。所以,在这一点上,映射驱动器似乎是问题所在。有解决这个问题的想法吗?
本质上,如何使用从 Task Scheduler 执行的批处理文件将文件复制或移动到映射的驱动器(不同的机器)?
S:
和 Y:
可能是映射的网络驱动器,但它们是在用户会话的上下文中映射的。计划任务将 运行 在其自己的会话中,不会映射这些驱动器。
您应该改用共享的 UNC 路径 (\server\share
),因为这在任一上下文中都应该有效(只要用户可以访问共享,计划任务就是 运行ning作为)。