2
モジュールを自分のユーザープロファイルディレクトリに配置しました。組織では、自分のホームディレクトリをネットワーク共有上に置く必要があります。モジュール関数から終了コード値を取得する方法は?
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
を使用しています。
[Int32] $myRc = myfunc;
$myRc;
「8」はコンソールに表示されているという事実は、PowerShellは、あなたのように、アウトデフォルトに頼るされていることを示しています
'$ LASTEXITCODE'はネイティブアプリケーション用であり、関数用ではなく' .ps1'スクリプト用です。 – PetSerAl
@PetSerAl - Ok。 PowerShellインタラクティブホストを開いて関数を呼び出すと、終了コード値を取得する方法はありますか?関数の戻り値を取得するには、コマンドレット(.ps1)スクリプトを呼び出す必要がありますか? – lit
また、関数には取得する終了コードがありません。パイプライン出力について話したら、それを変数に割り当てるか、パイプラインで次のコマンドに渡す必要があります。 – PetSerAl