我有一个计划任务,该任务应该运行批处理文件。批处理文件在单独调用时会运行文件,但在包装在计划任务中时不会运行。
对话框如下所示:
答案1
在我的例子中,解决方案是使用完全限定路径替换映射驱动器。因此,不要使用:
XCOPY C:\DATA Z:\
(其中 Z 是映射到的驱动器\\SERVER\DATA$
)
我改为:
XCOPY C:\DATA \\SERVER\DATA$
我以管理员身份运行该任务并且效果很好。
答案2
如果您尝试将这些文件夹复制到网络共享,则无法正常工作,因为计划任务以“系统”身份运行。如果是这种情况,您必须指定任务以哪个用户身份运行。
答案3
我设法通过结合使用来解决这个问题Robocopy 实用程序(因为它有更强大的日志记录和错误处理功能)和NET USE 命令。
NET USE B: \\remote-machine\location RemotePassword /user:remote-machine\RemoteUserName
robocopy.exe B:\ D:\backups /NP /LOG+:D:\robocopy\robocopy.log /R:10 /W:5
该脚本使用远程机器的指定用户名和密码将远程位置映射到网络驱动器 B:。
然后,Robocopy 将网络位置上的文件夹内容复制到 D:\backups 文件夹。这还会将详细信息记录到指定的 robocopy 日志文件中,以便您可以查看已复制的文件数量等。
答案4
这是猜测。但可能性很大。执行 .bat 或 .cmd 实际上意味着执行 cmd.exe。在 Windows 中,出于某些原因(我认为是安全原因),cmd.exe 操作系统仅供交互式用户执行。因此,只有当用户本地登录时才能执行它。
授予某些组权限以将 cmd.exe 作为计划任务执行,并将执行此任务的用户指定给该组。