使用Windows任务计划程序运行批处理文件

Rub*_*ben 141 batch-file scheduled-tasks windows-7

我有一个批处理文件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
Run Code Online (Sandbox Code Playgroud)

我在Windows 7中使用任务调度程序创建了一个任务.当我手动运行批处理时,一切都很顺利,但是当我尝试使用任务调度程序运行它时没有任何反应.

我的行动是

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"
Run Code Online (Sandbox Code Playgroud)

UAC关闭,我是管理员.

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

Gha*_*azi 258

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

我唯一错过的是"动作"设置 - "开始(可选)"选项.

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

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

然后单击确定

这个对我有用.祝好运!

  • @DCaugs,没有`Start In`参数设置,我的预定批处理文件根本不会运行.(Windows 7的) (21认同)
  • 我知道原帖很老了.但是当我尝试这个问题的答案时,这篇文章是谷歌搜索中的顶级链接.所以我想我想分享一下这些发现.以防万一,包括我在内的任何人都忘记了这一点. (8认同)
  • @DCaugs"开始"是它对我有用的主要原因. (7认同)
  • 我不相信你真的需要'开始(可选)'值 - 我能够运行一个简单的,自包含的.bat文件,没有它.感谢明确的步骤 - 非常有助于那些寻求简单步行的人! (4认同)
  • 这个解决方案对我不起作用.@Arun Raja提供的答案很好. (2认同)
  • 在 Windows Server 2012 上计划的“foo.cmd”任务中,“开始于”设置为“C:\Foo\”,该任务失败,退出代码错误为 0x8007001,但“开始于”设置为“C:\Foo”任务进行得很顺利。 (2认同)
  • “不要在“开始于”周围加引号” &lt;-我希望它们对用户显而易见。 (2认同)

Aru*_*aja 48

以上方法均无效.我按照这种方式尝试了它,就像在教程中说的那样,它起作用了.

行动:启动一个程序

程序/脚本:cmd

添加参数:
/c start "" "E:\Django-1.4.1\setup.bat"

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

  • 我希望能给你+2000。我一整天都在尝试不同的方法,除了你的解决方案之外,没有什么效果很好。我必须启动一个批处理文件,该文件又使用不同的参数启动另一个批处理文件 10 次。从控制台来看,一切正常,但任务计划程序拒绝同时打开 4 个以上的进程。这很奇怪......通过你的技术,所有 10 个进程都启动了。 (4认同)
  • 我同意!以前的解决方案在 Windows Server 2008 上都不适合我。这个答案对我有用!谢谢。 (2认同)

mic*_*str 37

对于那些蝙蝠文件仍然无法在Windows 8+任务计划程序中工作的人,有一件事我想加入Ghazi的答案 - 经过多次苦难之后:

1)在Actions下,选择"Create BASIC task",而不是"Create Task"

这样做对我来说,加上其他不容忘记的问题:

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

这无需触发命令提示即可工作.

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


Jon*_*han 21

确保"开始"没有引号.


Roh*_*hit 10

在文件夹中添加新任务


登录用户 vs 在后台运行


添加动作


我的脚本是从 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
Run Code Online (Sandbox Code Playgroud)

  • 我发现Start In目录非常重要! (3认同)

Rub*_*ben 7

它现在正在运作.这就是我做的.您可能不需要所有这些步骤来使其工作,但只是为了确保尝试所有:

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

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

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

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

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

  • 不好意思,但这是一个写得很差的答案.我会确保选择正确的答案作为接受的答案. (2认同)

小智 7

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


Chr*_*riz 5

有一个问题,我的任务没有被解雇只是因为它是在没有电源线的笔记本电脑上运行...在条件选项卡下,默认情况下会进行检查,以便在未连接交流电源时任务不会运行.