Function 如何检查powershell脚本中的函数依赖关系。避免多次运行同一函数

Function 如何检查powershell脚本中的函数依赖关系。避免多次运行同一函数,function,powershell,Function,Powershell,在我的PowerShell脚本中-一个函数的输出是另一个函数的输入例如:函数CreateReport($x)只有在函数ParseXml($x)运行后才能运行。如果用户在运行第一个函数之前直接运行第二个函数会怎么样如何检查第一个函数是否已运行以继续第二个,即先运行第一个函数(生成txt文件),然后运行第二个?如果第一个func已经运行,请不要重新运行它 例如:假设我有一个TestFunc.ps1文件,它有两个函数,如下所示 $X = "C:\XmlPath\file1.xml" Function

在我的PowerShell脚本中-一个函数的输出是另一个函数的输入
例如:函数CreateReport($x)只有在函数ParseXml($x)运行后才能运行。如果用户在运行第一个函数之前直接运行第二个函数会怎么样
如何检查第一个函数是否已运行以继续第二个,即先运行第一个函数(生成txt文件),然后运行第二个?如果第一个func已经运行,请不要重新运行它
例如:假设我有一个TestFunc.ps1文件,它有两个函数,如下所示

$X = "C:\XmlPath\file1.xml"
Function ParseXml($X)
{
#Read xml and output contents in a txt file    
}

#This function should execute only after the function Parsexml($X) and if Pasrsexml() has run before and generated the output, it shouldnot be allowed to re-run here
Function CreateReport($T) 
{
#from the txtfile Create csv
}

使用旗帜。在
ParseXml
函数中设置标志,并在
CreateReport
函数中检查它。如果未设置标志,则打印错误并退出,否则运行报告代码。请记住在流程完成时清除该标志


您可以使用标志变量。对于更持久的标志,考虑使用标志文件或在数据库中设置标志。

使用标志。在

ParseXml
函数中设置标志,并在
CreateReport
函数中检查它。如果未设置标志,则打印错误并退出,否则运行报告代码。请记住在流程完成时清除该标志


您可以使用标志变量。对于更持久的标志,考虑使用标志文件或在数据库中设置标志。<代码> > PARSISML<<代码>函数输出一个文件,您可以在<代码> CreateReport < /代码>函数中,用<代码>测试路径< /Cord>CMDLe>:< /P>测试该文件的存在性。
如果存在,则继续使用
CreateReport
函数,否则在继续之前调用
ParseXml
函数。

如果
ParseXml
函数输出文件,则可以在
CreateReport
函数中,使用
test Path
cmdlet测试此文件是否存在:


如果存在,请继续使用
CreateReport
函数,否则请在继续之前调用
ParseXml
函数。

根据此问题和您的其他问题,您正在尝试实现所谓的构建脚本。不要发明轮子(实现任务依赖关系、监视任务运行一次等等),而是看看一些已经实现的工具,如或。它们是为PowerShell设计的,它们完全可以执行您想要的操作(运行指定的任务集、维护任务依赖关系、只运行一次任务等)。当然,这些工具需要一点学习,但从长远来看,它们是值得学习的。

根据这个问题和您的另一个问题,您正在尝试实现一个所谓的构建脚本。不要发明轮子(实现任务依赖关系、监视任务运行一次等等),而是看看一些已经实现的工具,如或。它们是为PowerShell设计的,它们完全可以执行您想要的操作(运行指定的任务集、维护任务依赖关系、只运行一次任务等)。当然,这些工具需要一点学习,但从长远来看,它们是值得学习的。

首先尝试解决一些问题。如果你遇到困难,在具体任务上寻求帮助。试着先解决一些问题。如果您遇到困难,请在特定任务上寻求帮助。这很有效。。非常感谢基督徒@我赞成你的建议。我做了一点学习,并使它工作:)这很有效。。非常感谢基督徒@我赞成你的建议。我做了一些学习,并让它工作:)