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.
-
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"
-
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"
-
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.1Shell Command
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)