使用Windows Task Scheduler运行批处理文件


155

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

知道为什么这不起作用吗?


不知道这个问题是否是题外话,但是您可能会在serverfault.com上得到更好的答复。
汉斯·奥尔森,2010年

谢谢,我还将尝试将其发布在serverfault上
Ruben 2010年

Answers:


286

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

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

转到任务属性->操作选项卡->编辑->填写如下:

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

然后点击确定

这个对我有用。祝好运!


8
我知道原来的帖子已经很旧了。但是,当我尝试解决此问题时,这篇文章是google搜索中的顶部链接。因此,我想分享一下发现。以防万一,包括我在内的任何人都将放弃这一点。
加兹(Ghazi)2012年

4
我认为您实际上并不需要'Start in(optional)'值-我能够在没有它的情况下运行简单的自包含.bat文件。不过,感谢您采取了明确的步骤-对于那些希望通过简单的演练的人非常有帮助!
DCaugs 2013年

23
@DCaugs,如果没有设置Start In参数,则计划的批处理文件将根本无法运行。(Windows 7)
Justin Skiles

2
该解决方案对我不起作用。@Arun Raja提供的答案很好。
Cagy79 2014年

7
@DCaugs这Start in是它为我工作的主要原因。
古斯塔沃

54

上述方法均无效。我按照教程中所述的方法尝试了,并且有效。

行动:

Start a program 

程序/脚本:

cmd

添加参数:

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

在Win7 Pro上为我工作。您必须拥有一个带有密码的帐户(空白密码不好)


1
我同意!Windows Server 2008上没有以前的解决方案对我有用。这个答案对我有用!谢谢。
Cagy79 2014年

希望我能给您+2000。我整天都在尝试不同的方法,但是除了您的解决方案之外,其他方法都无法正常工作。我必须启动一个批处理文件,然后使用不同的参数依次启动另一个批处理文件10次。从控制台,一切正常,但是任务计划程序拒绝同时打开四个以上的进程。太奇怪了...使用您的技术,所有10个过程都已启动。
伊卡洛斯2015年

这种方法对我有用。但是,在调度程序的“历史记录”选项卡中,该任务将成功完成,因为该任务是cmd而非启动的.bat文件。由于bat文件(备份操作)会在2-3个小时后结束,因此我不知道其状态。
azzurroverde 2015年

您需要在bat文件完成的末尾保留一封邮件通知,以通知其状态。那是一种方式。
阿伦·拉贾

这与将其设置为在@Ghazi接受的答案中提到的指定目录中运行的提示结合在一起,可以确保还选择了“以最高特权运行”。
mheavers 2015年

43

对于那些蝙蝠文件仍无法在Windows 8+ Task Scheduler中运行的人,在遭受了许多苦难之后,我想在Ghazi的答案中添加一件事:

1)在“操作”下,选择“创建BASIC任务”,而不是“创建任务”

这对我来说是成功的,还有其他不容忘记的问题:

  1. 使用批处理文件的“ 开始于”路径,即使该文件显示为可选
  2. 如果需要,请在“启动程序”>“程序/脚本”条目中使用引号,即“ C:\ my scripts \ runme.bat” ...
  3. 但请勿在“开始于”字段中使用引号。(疯狂但真实!)

这项工作无需触发命令提示符。

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



7

现在正在工作。这就是我所做的。您可能不需要所有这些步骤来使它起作用,但只是要确保全部尝试一下:

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

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

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

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

  • 作为超级管理员,在命令提示符下输入“ Net user administrator / active:yes”,注销并以超级管理员身份登录,因此UAC已关闭


2
抱歉地说,但这是一个写得很差的答案。我将确保选择正确的答案作为接受的答案。
jwize 2014年

5

确保“开始于”不以BACKSLASH结尾。


1
您能说明什么操作系统版本或任务类型,或适用于此信息吗?可接受的答案包括\,因此它必须在某些系统上工作-在哪里不起作用?
lessthanideal

这已为我在Windows Server 2012上修复了预定的“ foo.cmd”任务。将“开始于”设置为“ C:\ Foo \”,该任务失败,退出代码错误0x8007001,但将“开始于”设置为“ C” :\ Foo'任务运行正常。
亚伦

5

出现了一个问题,我的任务不能仅仅因为它是在没有电源线的笔记本电脑上运行而无法触发的。


3

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

3

我搞砸了几个小时,并尝试了许多不同的建议。

通过执行以下操作,我终于使它起作用:

行动:启动程序

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

添加参数(可选)script.bat

开始于(可选):c:\ scriptdir

仅在用户登录时运行

以最高特权运行

配置为:Windows Vista,Windows Server 2008


2

如果此处所有其他操作都失败了,请确保您要尝试运行任务的用户有权访问您要使用的文件。

就我而言,我试图从C:\ Users \ Administrator \ Desktop运行一个该帐户无法访问的批处理文件。将其移至C:\上的中性位置可解决此问题。


1

请检查您用于执行我们任务的用户帐户。您可能会使用默认用户以外的其他用户运行任务,并且该用户需要一些额外的特权。也可能会执行任务,但是您看不到任何效果,因为批处理文件正在等待用户的响应,因此如果您看到进程正在运行,请检查任务管理器。一旦发生这种情况,我计划使用某个网页的svn更新计划批处理,并且由于svn要求接受服务器证书,因此该过程挂起。


1
  1. 不要在您的cmd / batch文件中使用双引号
  2. 确保您转到以(可选)开头的完整路径:
    C:\ Necessary_file \ Reqular_task \ QDE \ cmd_practice \

在此处输入图片说明



0

使用“任务计划程序”主窗口中的“运行”按钮测试多个变体,最终找到了正确的设置。这两个选项必须结合使用:-仅在用户登录时运行-以最高特权运行。所有其他变体均失败。一直在浪费时间,这很令人恼火,但至少它能起作用。操作系统:WINDOWS 8 CORE(BASIC)版本


0

尝试以高特权运行任务。

在“开始于文件夹”中的路径末尾添加一个\,例如c:\ temp \

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


0

行动: Start a Program

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

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

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

如果选择,则不会显示cmd窗口Run whether user is logged in or not。您需要选择Run only when user is logged on以查看运行中的窗口。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.