用Windows任务调度器运行批处理文件

我有一个批处理文件daily.bat,这是代码:

cd C:\inetpub\wwwroot\infoweb\factuur\cron
c:\PHP\php.exe -f ./cron_pdf.php
ftp -s:ftp_upload.txt ftp.site.be

我在Windows 7中用任务调度程序创建了一个任务。当我手动运行批处理时,一切正常,但当我尝试用任务调度程序运行它时,什么也没有发生。

我的行动是

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"

UAC关闭,我是管理员。

知道这为什么不管用吗?

661627 次浏览

现在起作用了。这就是我所做的。你可能不需要所有这些步骤来让它工作,但只是为了确保尝试它们:

  • 检查计划任务的帐户参数,并确保将它们设置为无论是否有人登录到计算机都将运行

  • 使用大多数特权/权限检查运行

  • 请确保先进入完整路径:cd C:\inetpub\wwwroot\infoweb\factuur\cron

  • 不要在批处理文件中使用双引号(不知道为什么,但似乎有帮助)

  • 作为超级管理员,在命令提示符中输入“网络用户administrator /active:yes”,注销后以超级管理员身份登录,UAC关闭

我遇到了同样的问题,但我找到了另一个解决方案,而无需修改批处理脚本。

我唯一错过的是在“操作”设置-“开始(可选)”选项。

进入任务属性——>动作选项卡——>编辑——>按如下方式填写:

  1. 行动:启动程序
  2. 程序/脚本:你的批处理脚本的路径,例如C:\Users\beruk\bodo.bat
  3. 添加参数(可选): <如果有必要-取决于你的脚本>
  4. 开始(可选):放置你的批处理脚本位置的完整路径,例如C:\Users\beruk\(不要在Start In周围加上引号)

然后单击“确定”

这对我很管用。好运!

确保“开始”没有引号。

上述方法都不奏效。我尝试了这种方法,就像在教程中所说的那样,它起作用了。

行动:

Start a program

程序/脚本:

cmd

添加参数:

/c start "" "E:\Django-1.4.1\setup.bat"

在Win7 Pro上为我工作过。你必须有一个有密码的账户(空密码不行)

对于那些在Windows 8+任务调度程序中的bat文件是还是不行的人,在经历了许多痛苦之后,我想在Ghazi的答案中添加一件事:

1)在Actions中选择“Create 基本 task”,而不是“Create task”

这对我来说很管用,另外还有其他一些不能忘记的问题:

  1. 使用开始于路径到你的批处理文件,即使它说可选
  2. 如果需要的话,可以使用引号,在你的启动程序>程序/脚本条目,即“C:\my scripts\runme.bat”…
  3. 但是不要使用引号在你的开始领域。(这很疯狂,但却是事实!)

这种方法不需要触发命令提示符。

(对不起,我的代表太低了,不能把我的基本任务提示添加到Ghazi的评论中)

确保“开始”不以反斜杠结尾。

使用任务调度器主窗口中的运行按钮测试几个变体,最终找到正确的设置。这两个选项必须结合起来: -仅当用户登录时执行 -以最高权限运行。 所有其他变体都失败了。把时间浪费在这上面很让人生气,但至少它是有效的。 操作系统:WINDOWS 8 CORE (BASIC) VERSION

. txt

在Windows7 Pro下,我发现Arun的解决方案对我有用:我可以让它在“没有用户登录”的情况下工作,我确实选择了使用最高特权。

根据过去的经验,您必须有一个带有密码的帐户(空白密码是不好的),如果在您完成向导时程序没有提示您输入密码,请返回并编辑一些内容,直到它提示您输入密码!

这是方法,在情况下,它不清楚的工作

Action: start a program
Program/script : cmd
(doesn't need the .exe bit!)
Add arguments:
/c start "" "E:\Django-1.4.1\setup.bat"
请检查您使用哪个用户帐户来执行我们的任务。可能发生的情况是,您使用不同的用户运行任务,然后使用默认用户,并且该用户需要一些额外的特权。 也可能发生任务执行,但你不能看到任何影响,因为批处理文件等待一些用户响应,所以请检查任务管理器,如果你看到你的进程运行。 有一次,我安排svn批量更新某些网页,由于svn请求接受服务器证书,进程挂起

尝试以高权限运行任务。

在“start in folder”路径的末尾放置一个\,例如c:\temp\

我不知道为什么,但有时这对我很有效。

有一个问题,我的任务没有启动,只是因为它在没有电源线的笔记本电脑上运行……在条件选项卡下,默认情况下选中该选项,以便在交流电源未连接时任务不会运行。

我摆弄了好几个小时,尝试了很多不同的建议。

我最终通过以下方法让它工作:

操作:启动一个程序

程序/脚本:C: \ scriptdir \ script.bat

添加参数(可选)script.bat

在(可选):c:\scriptdir中启动

仅在用户登录时运行

以最高权限运行

Windows Vista, Windows Server 2008

如果以上所有步骤都失败了,请确保您试图以用户身份运行任务的用户有权访问您试图使用的文件。

在我的情况下,我试图从C:\Users\Administrator\Desktop运行一个批处理文件,该帐户无法访问。将它移动到C:\的中立位置解决了这个问题。

  1. 不要在cmd/批处理文件中使用双引号
  2. 确保进入完整路径开始(可选):
    C: \ Necessary_file \ Reqular_task \ QDE \ cmd_practice \ < /李>

enter image description here

我发布了这个问题的答案在这里在这里

enter image description here

行动:Start a Program

程序/脚本:C:\Windows\System32\cmd.exe

添加参数:/k start "" "E:\scripts\example.bat"

exit添加到批处理文件的末尾。

如果选择Run whether user is logged in or not则显示cmd窗口则不会。你需要选择Run only when user is logged on来查看窗口的运行情况。

Add a new Task in a folder .


已登录用户vs正在后台运行


Add action


我的脚本是从master中提取最新的代码并发布一个新的分支

cd D:\dev\repo
git checkout master
git pull
git branch -D my-branch
git push origin --delete my-branch
git checkout -b my-branch
git push -u origin my-branch
exit