【发布时间】:2014-02-14 20:48:17
【问题描述】:
在 Windows 7 上,如何在每天第一次发生事件时触发以运行小批处理文件?
我正在尝试启动一个小批量脚本,该脚本在我解锁我的电脑时只运行几秒钟,但我只希望它在我第一次解锁我的电脑时运行,并且在我解锁我的电脑之前再也不会运行次日12点以后。我无法确定特定时间,因为我解锁 PC 的时间是随机的。我已经玩了几天任务调度程序但没有成功。
【问题讨论】:
标签: scheduled-tasks
在 Windows 7 上,如何在每天第一次发生事件时触发以运行小批处理文件?
我正在尝试启动一个小批量脚本,该脚本在我解锁我的电脑时只运行几秒钟,但我只希望它在我第一次解锁我的电脑时运行,并且在我解锁我的电脑之前再也不会运行次日12点以后。我无法确定特定时间,因为我解锁 PC 的时间是随机的。我已经玩了几天任务调度程序但没有成功。
【问题讨论】:
标签: scheduled-tasks
您可以让脚本在第一次运行时设置一个状态,以防止它再次运行,例如通过立即退出而不是在设置状态时执行任何操作。 然后设置一个在登录时触发以执行所述脚本的任务和另一个在每天上午 12 点运行的任务以取消设置/删除脚本设置的状态。这应该会给你想要的效果。
更好的解决方案是让脚本停用(例如通过 schtasks)由登录触发的任务调用它,并让 12AM 任务每天重新启动一次登录触发的任务。
【讨论】:
我刚刚遇到了同样的问题,所以这是我在不知道太多脚本的情况下的解决方法:
我创建了 4 个 .bat 文件,基本上包含以下内容。
现在我创建了计划任务: 第一个每天上午 12 点运行并运行批处理文件 3。因此,它将 bat-file1 替换为 bat-file4。 第二个在每次解锁计算机后运行并运行批处理文件1。
正如您所看到的,它完全符合您的要求,尽管它可能有点复杂......
在您第一次解锁时,它会启动您想要的脚本并用一个虚拟文件替换自己(批处理文件只包含单词exit)。在每次以下解锁之后,除了几乎不明显的 cmd 弹出窗口之外什么都没有发生。
在上午 12 点,虚拟文件再次被初始批处理文件替换,以便在第二天早上提供您的任务。
【讨论】: