2017-05-30 11 views
1

PowerShellのカスタム終了コード説明

exit 59, "Somethings Wrong" 
+0

「Write-Host」の後に終了コードを使用してみませんか?コードが上に掲示される方法は正しくない、 'exit'の後に終了コードを示す数値コードが続きます。 – t0mm13b

+0

これは私が現在やっていることです。私は、出口の前に出口コードの説明を出口の代わりに送信することを望んでいました。 – ArcSet

+0

「カスタム出口コードの説明」はありません。終了コードは整数です。 –

答えて

4

できません。 PowerShell環境内では、コマンドレットは.Netオブジェクト(文字列、例外など)を互いに返すことができますが、exitを実行するとPowerShellプロセスが終了し、Windows /呼び出しプロセスに返すことのできるものはすべて整数になります。

https://en.wikipedia.org/wiki/Exit_status#Windows

カスタムの記述と説明を得るために、何のためのない方法を置くためにどこにもありません。これは長年のレガシーコンピューティングと後方互換性の制約で、プロセッサが小さくてメモリが高価で、戻り値が1つのプロセッサレジスタ値などになっています。

コマンドプロンプトであり、これらのコマンドを実行すると:

c:\> powershell 
Windows PowerShell 
Copyright (C) 2014 Microsoft Corporation. All rights reserved. 

PS C:\> exit 10 

c:\> echo %ERRORLEVEL% 
10 

あなたはPowerShellプロセスは10の戻り値で終了しかし、何かを置くためまったく%ERRORDESCRIPTION%または類似の標準的な機能はありません参照してください。あなたがやりたいことのための低レベルの機械はありません。

Write-Errorを使用して標準エラー出力(stderr)に書き込むことができます。プログラムがスクリプトを呼び出してstderr出力をキャプチャすると、それを読み取ることができます。または、イベントログまたはログファイルにエラーを書き込むこともできます。

しかし、あなたのプロセスが終了した後は何もできないので、あなたのプロセスが実行されている間にその書き込みが行われなければなりません。

+1

errorpreferenceに応じて、write-errorはスクリプトの実行を終了しません。 「スロー」はここでも言及されるべきだと思います。 'write-error"これ ";" hello "'と 'throw" This ";" hello "' – Matt