运行多个Powershell脚本并确认完成

运行多个Powershell脚本并确认完成,powershell,Powershell,我编写了以下代码来执行许多PowerShell脚本,并将结果附加到日志文件中。目前只有两个例子,但最终会有二十多个 $LogFileLocation="G:\ReportTesting\" ."G:\Powershell\PowershellFunctions.ps1" $ScriptPath = Split-Path $MyInvocation.InvocationName $ErrorActionPreference = "SilentlyContinue" $error.clear()

我编写了以下代码来执行许多
PowerShell
脚本,并将结果附加到日志文件中。目前只有两个例子,但最终会有二十多个

$LogFileLocation="G:\ReportTesting\"
."G:\Powershell\PowershellFunctions.ps1"

$ScriptPath = Split-Path $MyInvocation.InvocationName
$ErrorActionPreference = "SilentlyContinue"

$error.clear()
try
    {
    & "$ScriptPath\large_gains.ps1"
    }
    catch
    {
    Log-File-Append ("$((Get-Date).ToString('yyyy-MM-dd HH:mm:ss')) ERROR: Large_Gains report execution failed")
    }
if (!$error)
    {
    Log-File-Append ("$((Get-Date).ToString('yyyy-MM-dd HH:mm:ss')) INFO: Large_Gains report execution succesfully completed")
    }

$error.clear()
try
    {
    & "$ScriptPath\large_losses.ps1"
    }
    catch
    { 
    Log-File-Append ("$((Get-Date).ToString('yyyy-MM-dd HH:mm:ss')) ERROR: Large_Losses report execution failed")
    }
if (!$error) 
    {
    Log-File-Append ("$((Get-Date).ToString('yyyy-MM-dd HH:mm:ss')) INFO: Large_Losses report execution succesfully completed")
    }
问题是,底层脚本非常大,会抛出各种非终止错误。这会导致每个脚本完成,但日志文件会附加错误消息


有没有办法只捕获物理上阻止脚本完成的错误?

您只需更改其他脚本抛出的错误类型即可。请尝试此操作以获取更多错误信息


请避免发布仅链接的答案。当链接目标因任何原因消失时,它们将变得无用。除了发布链接外,还包括相关内容。我不太清楚你想要实现什么。是否希望子脚本在出现所有错误时终止?仅仅是关于特定的错误?如果是这样,什么会构成你认为终止的错误?即使子脚本失败,父脚本是否仍应继续?或者它也应该终止吗?即使子脚本失败,父脚本也应该继续(确实如此)。我所寻找的只是捕获子脚本完全失败的任何错误。定义“完全失败”。什么构成了两个子脚本的“完全失败”?要使子脚本在出现任何错误时终止,您可以设置
$ErrorActionPreference='Stop'
,但问题似乎不是您想要的。