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

时间:2010-12-14 09:36:14

标签: windows-7 batch-file scheduled-tasks

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

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

17 个答案:

答案 0 :(得分:237)

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

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

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

  1. 操作:启动程序
  2. 程序/脚本:批处理脚本的路径,例如C:\Users\beruk\bodo.bat
  3. 添加参数(可选):<如有必要 - 取决于您的脚本>
  4. 开始(可选):填写批处理脚本位置的完整路径,例如C:\Users\beruk\(不要在Start In附近加上引号)
  5. 然后单击“确定”

    它对我有用。祝你好运!

答案 1 :(得分:44)

上述方法均无效。我按照这种方式尝试了它,就像在教程中所说的那样。它可以工作。

行动:启动一个程序

程序/脚本:cmd

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

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

答案 2 :(得分:37)

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

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

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

  1. 使用批处理文件的开始路径,即使它显示为可选
  2. 使用引号,如果您需要,在您的启动程序中>程序/脚本条目,即“C:\ my scripts \ runme.bat”......
  3. 但请勿在“开始时间”字段中使用引号。 (疯狂但真实!)
  4. 这无需触发命令提示即可工作。

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

答案 3 :(得分:20)

确保“开始时间”没有引号。

答案 4 :(得分:7)

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

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

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

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

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

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

答案 5 :(得分:5)

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

答案 6 :(得分:3)

在Windows7 Pro下,我发现Arun的解决方案对我有用:即使用#34;没有用户登录"我也可以使用它,我确实选择使用最高的priveledges。

根据以往的经验,您必须拥有一个带密码的帐户(空白密码不好),如果程序在您完成向导时没有提示您输入密码,请返回并编辑它确实!

这是方法,如果不清楚哪个有效

Action: start a program
Program/script : cmd
      (doesn't need the .exe bit!)
Add arguments:
    /c start "" "E:\Django-1.4.1\setup.bat" 

答案 7 :(得分:3)

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

我最终通过以下方式开始工作:

行动:启动程序

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

添加参数(可选)script.bat

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

仅在用户登录时运行

以最高权限运行

配置:Windows Vista,Windows Server 2008

答案 8 :(得分:2)

确保"开始使用" 不会以BACKSLASH结束。

答案 9 :(得分:2)

如果所有其他方法都失败了,请确保您尝试运行任务的用户可以访问您尝试使用的文件。

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

答案 10 :(得分:1)

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

答案 11 :(得分:1)

  1. 不要在cmd /批处理文件中使用双引号
  2. 确保您转到完整路径开始(可选)
    C:\ Necessary_file \ Reqular_task \ QDE \ cmd_practice \
  3. enter image description here

答案 12 :(得分:0)

尝试以高权限运行任务。

在&#34中的路径末尾放置\;从文件夹"开始例如c:\ temp \

我不知道为什么,但这有时适合我。

答案 13 :(得分:0)

使用任务计划程序主窗口中的“运行”按钮测试多个变体,最终找到了正确的设置。必须合并这两个选项: - 仅在用户登录时运行 - 享有最高特权。 所有其他变体都失败了这种情况一直在浪费,但至少它是有效的。 操作系统:WINDOWS 8核心(基本)版本

答案 14 :(得分:0)

我将问题herehere的答案发布。

enter image description here

答案 15 :(得分:0)

操作: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才能看到运行中的窗口。

答案 16 :(得分:0)

Add a new Task in a folder


Logged in user vs Running in background


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