PowerShell Sleep – Cómo pausar su secuencia de comandos

A veces, deberá pausar su secuencia de comandos de PowerShell durante un par de segundos.

Por ejemplo, cuando está utilizando un ciclo do while para verificar si un servidor está nuevamente en línea.

Para ello podemos utilizar el PowerShell Iniciar el cmdlet de suspensión. Con este comando, podemos dejar que el script duerma durante un par de segundos.

En este artículo, le daré un par de ejemplos de cómo puede usar el cmd de suspensión de PowerShell.

Uso del cmdlet Iniciar suspensión de PowerShell

El cmdlet start-sleep en PowerShell para pausar su secuencia de comandos es bastante sencillo de usar.

Puede definir el tiempo de sueño en segundos (predeterminado) o milisegundos.

Para permitir que su secuencia de comandos de PowerShell se detenga durante 5 segundos, puede hacer lo siguiente:

# Pause for 5 seconds per loop
Do {
    # Do stuff
    # Sleep 5 seconds
    Start-Sleep -s 5
}
while ($condition -eq $true)

También puedes escribir Start-Sleep 5 para dejar que el script duerma durante 5 segundos. Pero para la legibilidad de su script, ¿es mejor definir el -s o -seconds parámetro.

El único otro parámetro además de los segundos son los milisegundos. Esto le permite dejar que su secuencia de comandos espere solo un breve período de tiempo.

# Pause for 0.1 second per loop
Do {
    # Do stuff
    # Sleep 100 Milliseconds
    Start-Sleep -Milliseconds 100
}
while ($condition -eq $true)

El lugar más común para usar el cmdlet start-sleep es en un bucle de PowerShell.

Pero puede usar el cmdlet de suspensión en cualquier parte de su secuencia de comandos. El único problema con eso es que probablemente estés adivinando cuánto tiempo debes esperar.

Lo mejor es usar un bucle do-while y verificar una condición, retroalimentación o estado del proceso, en lugar de pausar su secuencia de comandos durante 30 segundos y esperar que la otra «cosa» que está esperando haya terminado.

Suspensión de PowerShell con barra de progreso

Cuando pausa un script de PowerShell con el start-sleep cmdlet, entonces no verá que suceda nada en la consola.

Para brindarle al usuario una retroalimentación visual, puede agregar una barra de progreso a su comando de suspensión.

poder dormir

estamos usando el Write-Progress cmdlet para esto y calcule el porcentaje y el tiempo restante en un bucle do-while.

Function Sleep-Progress($seconds) {
    $s = 0;
    Do {
        $p = [math]::Round(100 - (($seconds - $s) / $seconds * 100));
        Write-Progress -Activity "Waiting..." -Status "$p% Complete:" -SecondsRemaining ($seconds - $s) -PercentComplete $p;
        [System.Threading.Thread]::Sleep(1000)
        $s++;
    }
    While($s -lt $seconds);
    
}

Sleep-Progress 7

Otros artículos relacionados

Cómo agregar un usuario a un grupo en PowerShell con Add-ADGroupMember

Cómo agregar un usuario a un grupo en PowerShell con Add-ADGroupMember

Cuando necesite agregar varios usuarios a un grupo de Active Directory, usar PowerShell es realmente su mejor opción. En lugar ...
Leer Más
Cómo usar Import-CSV en PowerShell

Cómo usar Import-CSV en PowerShell

Cuando trabajamos con PowerShell, podemos usar archivos CSV para importar datos a los sistemas o usarlos como una lista de ...
Leer Más
Use Azure Automation y PowerShell para automatizar las tareas de Office 365

Use Azure Automation y PowerShell para automatizar las tareas de Office 365

Azure Automation es una de las herramientas más populares para ejecutar scripts de PowerShell en la nube. No solo puede ...
Leer Más
Guía y scripts de desinstalación, reinstalación y limpieza de Microsoft Teams

Guía y scripts de desinstalación, reinstalación y limpieza de Microsoft Teams

Microsoft Teams no es como un programa promedio cuando se trata de instalarlo y desinstalarlo. El problema con Microsoft Teams ...
Leer Más
Cómo instalar el módulo Microsoft Graph en PowerShell

Cómo instalar el módulo Microsoft Graph en PowerShell

La API de Microsoft Graph nos permite interactuar con todos los servicios de Microsoft a través de una única fuente ...
Leer Más
Cómo usar Start-Process en PowerShell

Cómo usar Start-Process en PowerShell

Para ejecutar una aplicación, proceso o secuencia de comandos desde PowerShell, simplemente puede ingresar la ruta al archivo. Pero esto ...
Leer Más

Deja un comentario