Powershell 如果需要的时间太长,请中断脚本

Powershell 如果需要的时间太长,请中断脚本,powershell,Powershell,我试图将大量数据转储到一个文件中,但如果花费的时间太长,我希望退出转储。在PowerShell中有这样做的方法吗?我尝试了下面的方法,但发现逻辑不正确,无法满足我的需要 $time = get-date do { dir c:\ -Recurse | Set-Content .\outtext.txt } while ((Get-Date).AddSeconds(5) -le $time) 使用此示例,如果作业尚未完成,它将在一分钟后停止作业: $Now = Get-Date Sta

我试图将大量数据转储到一个文件中,但如果花费的时间太长,我希望退出转储。在PowerShell中有这样做的方法吗?我尝试了下面的方法,但发现逻辑不正确,无法满足我的需要

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

使用此示例,如果作业尚未完成,它将在一分钟后停止作业:

$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
{
    $_
}

我建议用
工作来完成你的任务。为你发布答案。你可能想看看这篇文章:我运行了这个,文件中没有输出,我得到了一个奇怪的错误。如果没有输出文件,那么它会超过超时时间,如果你逐字复制我的示例,它会抛出一个错误@SekouMooreI希望即使数据出现故障也能被捕获。即使数据被停止作业终止,它也不会输出。看起来它输出的唯一方法是get childItem完成。但是,如果您使用递归并使用停止作业停止它,它将不会填充文件。很抱歉,我刚刚意识到为什么会出现此问题。这是我正在使用的IDE。我在PowerShell ISE中运行了这个,它运行得非常好。