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

时间:2015-05-06 15:55:43

标签: powershell

我编写了以下内容来执行许多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")
    }

问题是底层脚本非常大并且会抛出各种非终止错误。这导致每个脚本完成,但日志文件附加了错误消息。

有没有办法只捕获实际停止脚本完成的错误?

1 个答案:

答案 0 :(得分:0)

你只需要改变其他脚本抛出的错误类型。试试这个以获取更多错误信息

http://blogs.msdn.com/b/kebab/archive/2013/06/09/an-introduction-to-error-handling-in-powershell.aspx