Saltar al contenido

¿Cómo mantener abierta la ventana del shell después de ejecutar un script de PowerShell?

Solución:

Básicamente, tiene 3 opciones para evitar que se cierre la ventana de la Consola de PowerShell, que describo con más detalle en la publicación de mi blog.

  1. Solución única: Ejecute su secuencia de comandos desde la consola de PowerShell o inicie el proceso de PowerShell con el interruptor -NoSalir. p.ej PowerShell -NoExit "C:SomeFolderSomeScript.ps1"
  2. Corrección por script: Agregue una solicitud de entrada al final de su archivo de secuencia de comandos. p.ej Read-Host -Prompt "Press Enter to exit"
  3. Solución global: Cambie su clave de registro agregando el -NoExit cambie para dejar siempre abierta la ventana de la Consola de PowerShell después de que el script termine de ejecutarse.
Registry Key: HKEY_CLASSES_ROOTApplicationspowershell.exeshellopencommand
Description: Key used when you right-click a .ps1 file and choose Open With -> Windows PowerShell.
Default Value: "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" "%1"
Desired Value: "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" "& "%1""

Registry Key: HKEY_CLASSES_ROOTMicrosoft.PowerShellScript.1ShellCommand
Description: Key used when you right-click a .ps1 file and choose Run with PowerShell (shows up depending on which Windows OS and Updates you have installed).
Default Value: "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"
Desired Value: "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -NoExit "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & "%1""

Consulte mi blog para obtener más información y un script para descargar que hará que el registro cambie por usted.

Errr … debería haberlo sabido:

powershell -noexit <pathscript> 

y eso es todo lo que hay que hacer 🙂

La siguiente solución evita que la secuencia de comandos se cierre cuando se ejecuta Powershell ISE y permite que la secuencia de comandos se cierre de otra manera.

# If running in the console, wait for input before closing.
if ($Host.Name -eq "ConsoleHost")
{
    Write-Host "Press any key to continue..."
    $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *