如何安排任务每周运行但仅在登录时运行?

如何安排任务每周运行但仅在登录时运行?

我有 Windows 7 Ultimate 32 位。我希望安排一项任务每周运行一次,但在登录时。例如,每周一,只要我登录 Windows,任务就应该运行。

我查看了所有选项,但我认为找不到任何与此类要求相关的选项。您可以在每次登录时或每周运行任务。

有什么办法可以实现这个目标吗?

作为最后的手段,我将不得不修改我的程序以使其每次登录时运行但每周执行预期的任务。

谢谢。

答案1

您可以在计划任务上设置一个触发器来运行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 步并创建了锁定文件,那么这将是该用户帐户当天首次登录时第一次运行。这意味着同一天的后续登录(IE <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

计划任务触发器

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

登录时

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

来源

在此处输入图片描述


更多资源

相关内容