如果需要太长时间,请打破脚本

时间:2017-11-01 17:28:37

标签: powershell

我正在尝试将大量数据转储到文件中,但如果花费的时间太长,我想要从转储中退出。有没有办法在PowerShell中执行此操作?我尝试了以下但注意到逻辑是不正确的,不会做我需要的。

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

1 个答案:

答案 0 :(得分: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
{
    $_
}