2017-02-02 17 views
0

powershellのInvoke-Expressionのイベントウォッチがありますか?powershellのinvoke-expressionを実行中のイベントウォッチャー

イムは、実行可能ファイルをlouch、そしてそれについていくつかのaditionalの情報を必要とする、例の実行時間と、ほとんどの重要なセットのタイムアウトのために、その表現が長すぎる実行されている場合、それは実行を停止しますしツルーイング?以下のような

何か:

Function Run 
{ 
    Start-Transcript -path "C:\test.txt" -append 
    $start = 0 
    $timeoutInSec = 10 
    while 
    { 
     # something to increase time 
     # if time > timeout kill process 
     Invoke-Expression "C:\test.exe -verbose -page" 
    } 
    Stop-Transcript 
} 
+0

ごめんなさいあなたの質問に間違いがあったと思います。私の答えを取り除いた – Jayvee

答えて

0

PowerShellは、主にシングルスレッドの呼び出しの観点からなので、何かを呼び出すと並行して、それを監視する簡単な方法はありません。ただし、PowerShellジョブを使用し、バックグラウンドでコマンドを実行することができます(Start-Job)。 これを使用すると、必要に応じてジョブをポーリングして取り消すことができます。

注:ジョブを起動するとパフォーマンスが低下する可能性があります。その結果、コマンドの実行時間全体に若干のオーバーヘッドが発生する可能性があります。シナリオによっては実際の意図がぼやける場合がありますが、ミリ秒です。これはうまくいくはずです。

Measure-Commandは、全体的な実行時間を得るために使用できますが、StopWatchの方が正確です。

関連する問題