1. ホーム
  2. powershell

[解決済み] PowerShellスクリプトから終了コードを返す

2022-03-10 22:14:12

質問

PowerShellをcmd.exeから実行したときの終了コード値の返し方について質問があります。私は、以下のものを見つけました。 https://weblogs.asp.net/soever/returning-an-exit-code-from-a-powershell-script があり、参考になりました。しかし、PowerShellのコードの解決策は、関数を追加することです。

function ExitWithCode { param($exitcode) $host.SetShouldExit($exitcode) exit }

生成します。

ExitWithCode : The term 'ExitWithCode' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path
was included, verify that the path is correct and try again.
At C:\src\t\e\exit5.ps1:6 char:1
+ ExitWithCode -exitcode 12345
+ ~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (ExitWithCode:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

しかし、"exit"を新しい行に置くとうまくいきます。これは単なる言語の異常なのでしょうか?

function ExitWithCode { param($exitcode) $host.SetShouldExit($exitcode)
exit }

また、このページは2010年のものです。これはまだ現状なのでしょうか?今はもっといい方法・簡単な方法があるのでしょうか?

解決方法は?

$host.SetShouldExit($exitcode)exit は2つのコマンドで、リターン(あなたが言ったように)かセミコロンで区切らなければなりません。

function ExitWithCode { param($exitcode) $host.SetShouldExit($exitcode); exit }