如何安排任务每周运行但仅在LogOn上运行?


3

我有Windows 7旗舰版32位。我希望安排一个任务每周运行但在LogOn。例如,每当我登录Windows时,每周一都应运行任务。

我已经通过了选项,但我相信我找不到任何相关的选项来满足这样的要求。您可以在每次登录或每周运行任务。

反正有没有实现这个目标?

作为最后的手段,我将不得不修改我的程序来运行每次登录,但每周都要完成预定的任务。

谢谢。

Answers:


3

您可以在计划任务上设置触发器以运行At log on并运行,Specific User因此这意味着您将触发任务以特定用户的每次登录时运行

您可以添加条件逻辑来检查一些条件,并根据这些条件和逻辑,您可以确保它只在星期一是星期一运行,或者如果星期一是星期一,您可以选择只运行一次 -检查它尚未针对特定<YYYYMMDD>日期运行。


仅在星期一的每次登录时为特定用户运行

基本上这将:

  1. 如果当天不是星期一, 则停止运行(您不希望它在其他日子运行)

剧本

注意:IF NOT [%DAY%]==[Mon] EXIT逻辑之后,您可以添加其他批处理逻辑,甚至可以启动调用外部进程(如可执行文件等)。

@ECHO ON

SET DAY=%DATE:~0,3%
IF NOT [%DAY%]==[Mon] EXIT

<The rest of your batch logic below >
<Or you can CALL or START EXEs      >
<Scooby wanna scoobie snack         >
EXIT

奖励:仅在特定用户的星期一运行一次

基本上这将(按特定顺序):

  1. 如果当天不是星期一, 则停止运行(您不希望它在其他日子运行)
  2. 如果当天是星期一并且存在锁定文件 ,则停止运行(参见#3)
    • #2中的两个条件都必须为真
  3. 创建一个<YYYYMMDD>名为锁定文件,如果天是星期一文件不存在已经
  4. 如果它进入#3并创建锁定文件,那将是第一次登录该当天该用户帐户的第一次运行。这意味着当天(即<YYYYMMDD>)的后续登录,永远不应满足这些相同的条件,以允许进程再次进入#3,因为如果锁文件已经存在则停止运行。

剧本

注意:在最底层的IF [%DAY%]==[Mon] IF NOT EXIST "%userprofile%\~逻辑之后,您可以添加其他批处理逻辑,甚至可以启动调用外部进程(如可执行文件等)。

@ECHO ON

SET DAY=%DATE:~0,3%
SET YYYYMMDD=%DATE:~10%%DATE:~4,2%%DATE:~7,2%
IF NOT [%DAY%]==[Mon] EXIT
IF [%DAY%]==[Mon] IF EXIST "%userprofile%\Lock_%YYYYMMDD%.lck" EXIT
IF [%DAY%]==[Mon] IF NOT EXIST "%userprofile%\Lock_%YYYYMMDD%.lck" ECHO Script has run %YYYYMMDD% already>>"%userprofile%\Lock_%YYYYMMDD%.lck"

<The rest of your batch logic below >
<Or you can CALL or START EXEs      >
<Scooby wanna scoobie snack         >
EXIT

计划任务触发器

注意:您将使用此方法安排上面列出的方法和脚本。

登录时

此触发器导致任务在用户登录计算机时运行,并且触发器的设置允许您指定在任何用户登录计算机或特定用户登录时应触发任务。

资源

在此输入图像描述


更多资源

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.