Powershell 中的递归工作流
Recursive Workflow in Powershell
我正在尝试自动化一个可以分解为几个步骤的冗长过程。 (比如步骤 1-5)
我写了一个脚本,将它们分成函数并按顺序调用它们。
但是,我们现在有使脚本可重新启动的额外要求。也就是说,如果它在任何一个步骤中失败,重新运行脚本将导致它跳过所有已完成的步骤并从失败的步骤重试。
在不引用外部日志文件的情况下这是否完全可行?
我试过使用工作流,但似乎不支持递归。
有什么想法吗?
除了使用日志文件之外的一些选项。
- 使用注册表
您可以根据停止的步骤将注册表值设置为一个数字,这样就不需要日志文件,但在 'external' 存储方面有些相似
- 检查每个 运行
的任务状态
根据您可以拥有脚本的任务 'test',例如,第 3 步查看它是否已经完成,然后检查第 4、5 步等,直到遇到它需要的运行 然后从那里继续,这可能是不可能的,或者需要大量的开销代码,尽管回报不多。
- 允许用户从脚本中继续。
这可能是最好的方法(除了使用日志文件),运行 块中的脚本,当遇到错误时,您可以提示用户先解决问题按 'enter' 重新 运行 之前的脚本块,这样也可以轻松提供有关失败内容的信息。
这里的主要内容是一旦脚本 'quits',为了知道它最后发生了什么 运行 它需要一个外部信息源,或者以另一种方式处理它。
我正在尝试自动化一个可以分解为几个步骤的冗长过程。 (比如步骤 1-5)
我写了一个脚本,将它们分成函数并按顺序调用它们。
但是,我们现在有使脚本可重新启动的额外要求。也就是说,如果它在任何一个步骤中失败,重新运行脚本将导致它跳过所有已完成的步骤并从失败的步骤重试。
在不引用外部日志文件的情况下这是否完全可行?
我试过使用工作流,但似乎不支持递归。
有什么想法吗?
除了使用日志文件之外的一些选项。
- 使用注册表
您可以根据停止的步骤将注册表值设置为一个数字,这样就不需要日志文件,但在 'external' 存储方面有些相似
- 检查每个 运行 的任务状态
根据您可以拥有脚本的任务 'test',例如,第 3 步查看它是否已经完成,然后检查第 4、5 步等,直到遇到它需要的运行 然后从那里继续,这可能是不可能的,或者需要大量的开销代码,尽管回报不多。
- 允许用户从脚本中继续。
这可能是最好的方法(除了使用日志文件),运行 块中的脚本,当遇到错误时,您可以提示用户先解决问题按 'enter' 重新 运行 之前的脚本块,这样也可以轻松提供有关失败内容的信息。
这里的主要内容是一旦脚本 'quits',为了知道它最后发生了什么 运行 它需要一个外部信息源,或者以另一种方式处理它。