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

知道这为什么不管用吗?


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

检查计划任务的帐户参数,并确保将它们设置为无论是否有人登录到计算机都将运行 使用大多数特权/权限检查运行 请确保先进入完整路径:cd C:\inetpub\wwwroot\infoweb\factuur\cron 不要在批处理文件中使用双引号(不知道为什么,但似乎有帮助) 作为超级管理员,在命令提示符中输入“网络用户administrator /active:yes”,注销后以超级管理员身份登录,UAC关闭


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

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

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

操作:启动一个程序 程序/脚本:批处理脚本的路径,例如C:\Users\beruk\bodo.bat 添加参数(可选):<如果需要-取决于你的脚本> 起始位置(可选):将完整路径放到您的批处理脚本位置,例如C:\Users\beruk\(不要在起始位置周围加上引号)

然后单击“确定”

这对我很管用。好运!


确保“开始”没有引号。


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

行动:

Start a program 

程序/脚本:

cmd

添加参数:

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

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


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

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

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

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

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

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


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


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


在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" 

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.


尝试以高权限运行任务。

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

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


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


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

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

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


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

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


不要在cmd/批处理文件中使用双引号 确保你进入全路径开始(可选): C: \ Necessary_file \ Reqular_task \ QDE \ cmd_practice \


我把这个问题的答案贴在这里和这里。


操作:启动一个程序

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

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

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

如果选择“运行”,无论用户是否登录,cmd窗口将不显示。您需要选择“仅当用户登录时运行”,以查看运行中的窗口。





我的脚本是从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