¿Esto es posible? Finalmente decidí comenzar a configurar mi entorno personal de desarrollo .NET para imitar más de cerca cómo configuré un entorno de desarrollo * NIX, lo que significa aprender Powershell en serio.¿Cómo atrapo las señales en PowerShell?
Actualmente estoy escribiendo una función que se repite a través del sistema de archivos, estableciendo el directorio de trabajo tal como está para construir cosas. Una pequeña cosa que me molesta es que si Ctrl + C fuera de la función, me deja dondequiera que haya estado la última secuencia de comandos. Intenté establecer un bloque trap
que cambia el directorio al punto de partida cuando se ejecuta, pero parece que solo está previsto (y dispara) en Excepción.
Si esto estuviera en un idioma que tenía raíz en Unix, configuraría un manejador de señal para SIGINT
, pero no puedo encontrar nada similar buscando en Powershell. Poniendo mi capa de .NET, me imagino que hay algún tipo de evento al que puedo adjuntar un controlador, y si tuviera que adivinar, sería un evento de $host
, pero no puedo encontrar ninguna documentación canónica para System.Management.Automation.Internal.Host.InternalHostUserInterface
, y nada anecdótico que haya podido buscar ha sido útil.
Quizás me falta algo completamente obvio?
Finalmente una solución recta hacia adelante para limpiar un CTRL-C terminada Trabajo (: – Callahan