Windows 7 中的任务计划程序

Windows 7 中的任务计划程序

我创建了一个包含三个操作的任务,我希望按以下顺序执行:

  1. 向用户显示消息
  2. 备份文件(批处理文件)
  3. 关闭计算机(批处理文件)

据我了解问题,它们应该从操作列表的顶部到底部按顺序执行。我的问题是,一旦我启动任务,计算机就会关闭。没有向用户报告任何消息,我不知道它是否调用了备份任务。完成备份大约需要 1 小时。我已经测试过批处理文件在双击时是否有效,并且确实有效。

您能帮我获取关机前显示的消息和完成的备份任务吗?

答案1

我想我可能有解决方案:

根据消息框的内容,我可能能够帮助处理其中的一部分 - 如果它只是显示一些文本,带有“确定”或“是/否”按钮,那么我就可以做到这一点。

我建议创建一个批处理文件来执行您列出的所有操作。

这样,您可以按照自己喜欢的方式定义顺序。而且您知道一个任务只有在另一个任务完成之后才能运行。

问题框的代码差异很大,具体取决于您要找的框类型。一旦您决定要寻找哪种消息框,代码本身就非常简单,只有几行。

这是消息框的代码(希望它是您想要的):

echo wscript.quit MsgBox ("Message", Number, "Title") > message.vbs
wscript //nologo message.vbs
set value=%errorlevel%
del message.vbs
if "%value%"=="1" goto :ok
if "%value%"=="2" goto :cancel
if "%value%"=="3" goto :abort
if "%value%"=="4" goto :retry
if "%value%"=="5" goto :ignore
if "%value%"=="6" goto :yes
if "%value%"=="7" goto :no

显然,您将 Message 替换为消息框的内容,将 Title 替换为标题,将 Number 替换为下面记录的数字之一。确保在必要时添加引号(上面的代码中已经有引号)。

数字(定义消息框中的按钮):

  • 如果为 1,则会出现一个带有“确定”和“取消”的消息框
  • 如果是 2,则会出现一个带有“中止”、“重试”和“忽略”的消息框
  • 如果是 3,则会出现一个包含“是”、“否”和“取消”的消息框
  • 如果是 4,则会出现一个包含“是”和“否”的消息框
  • 如果是 5,则会出现一个带有“重试”和“取消”的消息框
  • 如果为 6 及以上,则获得的结果与 1 相同。(99% 确定)

变量%value%以数字形式表示您按下了哪个按钮。在我上面列出的代码中,我以一段代码的形式记录了每个结果,该代码转到批处理脚本中的某个位置,标题为。我相信您理解位置,由 定义:example,其中example是位置的名称。这意味着,在它说 的地方goto :ok,有一个位置:ok在您的批处理脚本中调用,其中存储了该结果的相应代码。当然,如果您不想,您不必goto在 if 语句的末尾有命令,我只是包括了它,作为一种区分哪个值对应哪个按钮的简单方法。

批处理脚本中的消息框之后,您将获得备份程序。接下来是关机命令(我猜是关机 -s?)

就是这样!您现在需要做的就是在任务计划程序中创建一个任务,运行批处理文件,然后就大功告成了!您应该有一个消息框、备份和关机,它们会连续执行。

答案2

我终于找到了问题所在,它是批处理文件和任务计划程序中的操作定义的混合。

  • 第一个问题是我编写的批处理文件使用了 7-zip 库。我定义了一些带有字母定义的文件夹路径(在我的情况下是 H:/),当我手动启动批处理文件时,这些路径是有效的。但在运行任务时,我必须使用完整的网络路径,例如\\something.com\public\home\...
  • 第二个问题是,在动作定义窗口中,我还必须定义可选参数:开始于。它应指向批处理文件所在的文件夹,而且,它不能像脚本位置字段那样在开头和结尾包含“”。不知道为什么。

现在任务中的操作正在按顺序运行:)

相关内容