gpt4 book ai didi

windows - Powershell相当于Linux超时

转载 作者:行者123 更新时间:2023-12-03 01:29:19 25 4
gpt4 key购买 nike

作为Powershell脚本的一部分,我需要执行通常很快速的任务,但是有时可能会花费很长时间。我要执行任务,然后等待它完成或等待设置的时间(以先发生者为准)。发生任何一种情况时,我都需要Powershell脚本返回到命令提示符。

这是我想出的最接近的方法(以ping为例)

$x = Start-Process -Filepath "ping" -ArgumentList 'google.com -n 100' -NoNewWindow -PassThru; 
Start-Sleep -Seconds 5;
try { Stop-Process -Id $x.Id -ErrorAction stop } catch {};

达到timoeout后(如果它仍在运行),它将终止该进程,并返回到提示。但是,如果命令在超时之前成功完成,它将不会返回到提示。这将导致脚本始终花费时间,无论超时值中指定了多长时间。

所需的语义与Linux的 timeout命令相似或相同。

要求:
  • 如果任务在超时窗口内完成,则控制权返回到脚本(显示提示)。
  • 如果已达到超时并且任务仍在运行,则该任务将被杀死,控制权将返回到脚本(显示提示)。
  • 必须将任务的输出打印/显示到stdout
  • 通过SSH连接工作
  • 最佳答案

    编辑使用ping而不是记事本。我将等待过程和“$?”组合在一起用“$()”转换为一个语句,因为powershell“if”会查看输出,而不是退出状态。

    start ping 'google.com -n 100'
    if (-not $(wait-process ping 10; $?)) {
    stop-process -name ping }

    关于windows - Powershell相当于Linux超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59737665/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com