2010-03-12 15 views
19

Estoy buscando una forma de realizar automáticamente algunas tareas de limpieza cuando la sesión de PowerShell se cierra. Entonces, por ejemplo, en mi archivo de perfil, comienzo un proceso que debe ejecutarse en segundo plano para un gran número de tareas y me gustaría cerrarlo automáticamente cuando cierre la consola.Evento de perfil de Powershell "al salir"?

¿Hay alguna función que el PowerShell llame automáticamente al cerrar la sesión como lo hace con prompt al mostrar el mensaje?

Respuesta

19

No es el cmdlet Register-EngineEvent que se puede utilizar para conectar un controlador de eventos para el evento Exiting: sin embargo

Register-EngineEvent PowerShell.Exiting –Action { ... } 

Tenga en cuenta, que este evento no será despedido si cierra la ventana de la consola.

+1

Gracias, eso funciona bien pero la mayoría de las veces cierro mi shell sin escribir 'exit' explícitamente. Tal vez alguien más tiene una idea, de lo contrario, tengo que acostumbrarme a la 'salida';) – poke

+1

Por cierto. debe agregar el parámetro '-SupportEvent' para evitar que PowerShell imprima los datos del evento cada vez que se inicie el shell. - O canalizarlo a 'Out-Null'. – poke

+7

@poke: Estoy usando el siguiente pequeño fragmento en mi perfil: función 'Invoke-Expression '$ ([char] 4) {exit}" 'esto me permite salir de PowerShell presionando Ctrl + D y Enter. No es perfecto, pero lo suficientemente corto como para evitar ir por el botón X. – Joey

Cuestiones relacionadas