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 {我要在这里主动抛出异常}