2010-03-12 23 views
19

Tôi đang tìm cách tự động thực hiện một số tác vụ dọn dẹp khi phiên PowerShell thoát. Vì vậy, ví dụ trong hồ sơ của tôi, tôi bắt đầu một quá trình mà cần phải chạy trong nền cho khá nhiều nhiệm vụ và tôi muốn tự động đóng quá trình đó khi tôi đóng giao diện điều khiển.Hồ sơ Powershell "khi thoát" sự kiện?

Có một số chức năng mà PowerShell sẽ tự động gọi khi đóng phiên như với prompt khi hiển thị lời nhắc không?

Trả lời

19

Có là Register-EngineEvent lệnh mà bạn có thể sử dụng để đính kèm một xử lý sự kiện cho sự kiện Exiting: Tuy nhiên

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

Lưu ý, rằng sự kiện này sẽ không bị sa thải nếu bạn đóng cửa sổ giao diện điều khiển.

+1

Cảm ơn, hoạt động tốt nhưng tôi chủ yếu đóng vỏ của tôi mà không cần gõ 'thoát' một cách rõ ràng. Có lẽ ai đó có ý tưởng, nếu không tôi cần làm quen với 'exit';) – poke

+1

Btw. bạn nên thêm tham số '-SupportEvent' để ngăn PowerShell in ra dữ liệu sự kiện bất cứ khi nào hệ vỏ bắt đầu. - Hoặc đặt nó vào «Out-Null'. – poke

+7

@poke: Tôi đang sử dụng đoạn mã nhỏ sau đây trong tiểu sử của tôi: hàm 'Invoke-Expression '$ ([char] 4) {exit}" 'điều này cho phép tôi thoát PowerShell bằng cách nhấn Ctrl + D và Enter. Không hoàn hảo nhưng đủ ngắn để tránh đi cho nút X. – Joey

Các vấn đề liên quan