我已将模块放入我的用户个人资料目录。组织要求我的主目录位于网络共享上。
16:06:09.74 \\COMPNAME\SHNAME\Users\lit H:\My Documents\WindowsPowerShell\Modules\MyUtils
H:>type MyUtils.psm1
function MyFunc()
{
[cmdletbinding()]
Param()
Write-Host "now from myfunc"
return 8
}
Export-ModuleMember -Function MyFunc
当我运行MyFunc
时,它似乎按预期运行。但是,$LASTEXITCODE
始终为Null
。
PS C:\src\powershell> MyFunc
now from myfunc
8
PS C:\src\powershell> if (!$LASTEXITCODE) { Write-Host "LASTEXITCODE is null"}
LASTEXITCODE is null
如果我使用exit 8
,那么我的互动主机会立即退出。使用$Host.SetShouldExit
也是一样。
答案 0 :(得分:0)
您可以尝试简单地将值分配给变量,例如:
[Int32] $myRc = myfunc;
$myRc;
控制台上出现'8'这一事实表明PowerShell正在采用 Out-Default ,因为您还没有告诉它如何处理该值。
当然,如果你想以PowerShell的方式做事,你应在函数中使用 Write-Output ,如果该函数将用作cmdlet,而不是“帮助”函数。
祝你好运!