A脚本
param([ref][String]$b)
Function a(){
$b = 0
$path = “D:\file\b.ps1”
$re = & $path ([ref]$b)
Write-Host $b
}
$re = a
return $re
B脚本
param([String][ref]$b)
Function b(){
[String]$b = 3
$re = 0
}
$re = b
return $re
为什么在调用完B脚本之后b的值没有发生变化?
2 Answers
Best Answer
$Response=[PSCustomObject]@{Success=$true;Result="";Error=@()}
trap
{
$Response.Success=$false;
$Response.Error+=$_
return $Response
}
$Response.Result = Get-Date
#第一类:自己抛异常
throw '我要在这里主动抛出异常'
#第二类:脚本执行的异常
1/0
#第三类,命令内部异常trap搞不定,需要通过ErrorAction捕获,并记录
Get-Item '不存在' -ErrorAction SilentlyContinue
if(!$?){
$Response.Error+=$Error[0]
}
$Response
输出示例
Success Result Error
------- ------ -----
False 2017/5/17 23:26:09 {我要在这里主动抛出异常}
