Bloqueo de Windows Powershell

Bloqueo de Windows Powershell

¿Cómo evito que Windows Powershell se bloquee cuando ejecuto un comando en él? Sé que en Linux puedes agregar & al final de un comando para que puedas seguir usando la terminal sin cerrar ese proceso. ¿Existe algo similar para Windows Powershell?

Respuesta1

¿Cómo evito que Windows Powershell se bloquee cuando ejecuto un comando?

Utilice el Start-Jobcmdlet para iniciar trabajos en segundo plano.

Este es el equivalente de Powershell al uso &al final de un comando en Unix/Linux.


Trabajos en segundo plano de PowerShell

La forma más sencilla de crear un trabajo en segundo plano de PowerShell es utilizar el Start-Jobcmdlet. Puede especificar un bloque de script con el cmdlet. Por ejemplo, el siguiente comando ejecuta un bloque de script simple que obtiene los números entre 1 y 50 como trabajo en segundo plano:

Start-Job {1..50}

Puede pasar argumentos a un bloque de secuencia de comandos con este comando de una línea:

Start-Job {Param($log,$newest) Get-EventLog $log Newest $newest} -ArgumentList "system",25

O puede ejecutar scripts:

Start-Job -FilePath C:\scripts\Send-UptimeMail.ps1 -ArgumentList (Get-Credential [email protected])

Puede ver los resultados de estos tres comandos a continuación. Ejecuté estos comandos en PowerShell 3.0. Sin embargo, también funcionarán en PowerShell 2.0, aunque no verá la columna PSJobTypeName.

Figura 1: Ejecución de bloques de scripts y scripts en segundo plano

La salida Start-Jobes un objeto de cola de trabajos. Los cmdlets se utilizan -Job para administrar trabajos y sus resultados. Puede hacer referencia a trabajos mediante una identificación. En la imagen de arriba, observe cómo los ID de trabajo saltan del 1 al 3 y al 5.

FuenteTrabajos en segundo plano de PowerShell

El enlace anterior proporciona muchos más detalles que cubren los siguientes temas:

  • Uso del Get-WMIObjectcmdlet para crear trabajos en segundo plano

  • Uso del Invoke-Commandcmdlet para crear trabajos en segundo plano

  • Gestión de trabajos en segundo plano

  • Recuperar resultados del trabajo

  • Detener y esperar trabajos


Otras lecturas

Respuesta2

Como alternativa a Jobs puedes usarEspacios de ejecución: proporcionan mayor rendimiento y menos gastos generales para ejecutar comandos en segundo plano.

Implementaciones:

información relacionada