如何在自定义PowerShell函数中模拟-ErrorAction.例如,请考虑以下脚本
function Foo2
{
Write-Host "in Foo2"
#...Error occurs
Foo3
}
function Foo1
{
Write-Host "in Foo1"
Foo2
}
function Foo3
{
Write-Host "in Foo3"
}
Run Code Online (Sandbox Code Playgroud)
PS> Foo1 -ErrorAction停止
当Foo2发生错误时,是否可以停止执行Foo1,而不是继续执行Foo3?
此致,Jeez
Emi*_*ggi 12
get-help about_Functions_CmdletBindingAttribute
你要:
function Foo1() {
[CmdletBinding()]
PARAM()
process{
Write-Host "in Foo1"
Foo2
}
}
这不是关于仿真,它意味着在您的函数中真正实现通用参数; 如果这是你的意图.
之后,你可以像这样工作:
Foo1 -ErrorAction stop
您可以使用相同的语法Foo2和Foo3.
要像往常一样记录错误使用重定向.
这是一个说明@Empo答案的示例
function Test-ErrorAction
{
[CmdletBinding()]
Param( )
begin
{
Write-Host "I'am Here"
}
Process
{
Write-Error "coucou"
}
end
{
Write-Host "Done !"
}
}
clear
Test-ErrorAction -ErrorAction "silentlycontinue"
Test-ErrorAction -ErrorAction "stop"
Run Code Online (Sandbox Code Playgroud)
给
I'am Here
Done !
I'am Here
coucou
à C:\Développements\Pgdvlp_Powershell\Sources partagées\Menus Contextuel Explorer\Test-ErrorAction.ps1: ligne:23 caractère:17
+ Test-ErrorAction <<<< -ErrorAction "stop"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7097 次 |
| 最近记录: |