我有一个批处理文件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关闭,我是管理员。

知道这为什么不管用吗?


当前回答

对于那些bat文件仍然不能在Windows 8和10+任务调度器中工作的人,我想在Ghazi的回答中添加一件事-在经历了许多痛苦之后:

在操作中选择“创建基本任务”,而不是“创建任务”

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

使用引号,如果你需要,在你的启动程序>程序/脚本条目即“C:\my scripts\runme.bat”(或只是使用浏览按钮)… 使用Start In路径到你的批处理文件,即使它说可选-但不要在Start In字段中使用引号。(这很疯狂,但却是事实!)

这种方法不需要触发命令提示符。这是最快最简单的方法。

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

其他回答

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

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

行动:

Start a program 

程序/脚本:

cmd

添加参数:

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

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

确保“Start In”不以反斜杠结尾。

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

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

操作:启动一个程序 程序/脚本:C: \ scriptdir \ script.bat 添加参数(可选)script.bat 在(可选):c:\scriptdir中启动 仅在用户登录时运行 以最高权限运行 Windows Vista, Windows Server 2008

Please check which user account you use to execute our task. It may happen that you run your task with different user then your default user, and this user requires some extra privileges. Also it may happen that the task is executed but you cant see any effect because the batch file waits for some user response so please check task manager if you see your process running. Once it happen that I schedule a batch with svn update of some web page and the process hangs because svn asked for accepting server certificate.