2017-11-01 5 views
0

ファイルに大量のデータをダンプしようとしていますが、時間がかかりすぎるとダンプから抜け出したいのです。 PowerShellでこれを行う方法はありますか?私は以下を試しましたが、ロジックが間違っていて、必要なことをしないことに気付きました。この例を使用して時間がかかりすぎるとスクリプトが途切れる

$time = get-date 
do 
{ 
    dir c:\ -Recurse | Set-Content .\outtext.txt 
} 
while ((Get-Date).AddSeconds(5) -le $time) 
+0

を私はあなたのタスクを実行するために、 'job'のを使用してお勧めしたいです。 yaの回答を投稿する。 – TheIncorrigible1

+0

この記事を見てみるといいかもしれません:[Powershell Start Process、タイムアウトで待って、終了して終了コードを取得](https://stackoverflow.com/a/36934083/5671993) – Vikhram

答えて

0

それが完了していない場合、それは分後にジョブを停止されます:

$Now = Get-Date 

Start-Job -Name 'C' -ScriptBlock { 
    Get-ChildItem -Path 'C:\' -Recurse | Set-Content -Path '.\outtext.txt' } 

Try 
{ 
    Do 
    { 
     If ((Get-Date).AddMinutes(-1) -gt $Now) 
     { 
      Stop-Job -Name 'C' 
      Throw 'an error' 
     } 
    } While ((Get-Job -Name 'C').State -eq 'Running') 

    $Output = Receive-Job -Name 'C' 
} 
Catch 
{ 
    $_ 
} 
+0

これを実行したところ、出力はありませんファイルと私は奇妙なエラーを取得します。 –

+0

出力ファイルがない場合は、タイムアウトを超えて実行し、私の例をそのままコピーした場合はエラーがスローされます。@SekouMoore – TheIncorrigible1

+0

失敗してもデータが取り込まれるようにします。 –

関連する問題