Điều này có khả thi không? Cuối cùng tôi đã quyết định bắt đầu thiết lập môi trường phát triển .NET cá nhân của mình để bắt chước cách tôi thiết lập một môi trường dev * NIX, có nghĩa là học Powershell một cách nghiêm túc.Làm cách nào để bẫy tín hiệu trong PowerShell?
Tôi hiện đang viết một hàm đệ quy thông qua hệ thống tệp, thiết lập thư mục hoạt động khi nó hoạt động để xây dựng mọi thứ. Một điều nhỏ làm tôi bực mình là nếu tôi Ctrl + C ra khỏi chức năng, nó để lại cho tôi bất cứ nơi nào kịch bản cuối cùng là. Tôi đã cố gắng thiết lập một khối trap
mà thay đổi thư mục đến điểm khởi đầu khi chạy, nhưng điều này dường như chỉ được dự định (và cháy) về ngoại lệ.
Nếu ngôn ngữ này có ngôn ngữ gốc trong Unix, tôi đã thiết lập trình xử lý tín hiệu cho SIGINT
, nhưng tôi không thể tìm thấy bất kỳ nội dung nào tương tự tìm kiếm trong Powershell. Đặt trên nắp .NET của tôi, tôi đang tưởng tượng có một số loại sự kiện mà tôi có thể đính kèm một trình xử lý, và nếu tôi phải đoán, nó sẽ là một sự kiện của $host
, nhưng tôi không thể tìm thấy bất kỳ tài liệu chuẩn nào cho System.Management.Automation.Internal.Host.InternalHostUserInterface
và không có giai thoại nào mà tôi có thể tìm kiếm đã hữu ích.
Có lẽ tôi đang thiếu điều gì đó hoàn toàn hiển nhiên?
Cuối cùng, một giải pháp thẳng về phía trước để xóa CTRL-C chấm dứt công việc (: – Callahan