Trong PowerShell 1.0, nếu tôi có tham số cmdlet của kiểu enum, phương pháp được đề xuất để kiểm tra xem người dùng đã chỉ định tham số đó trên dòng lệnh cmdlet là gì? Ví dụ:Làm cách nào để xác định liệu giá trị tham số PowerShell Cmdlet đã được chỉ định?
MyEnum : int { No = 0, Yes = 1, MaybeSo = 2 }
class DoSomethingCommand : PSCmdlet
...
private MyEnum isEnabled;
[Parameter(Mandatory = false)]
public MyEnum IsEnabled
{
get { return isEnabled; }
set { isEnabled = value; }
}
protected override void ProcessRecord()
{
// How do I know if the user passed -IsEnabled <value> to the cmdlet?
}
Có cách nào để thực hiện việc này mà không cần phải gieo hạt được kích hoạt bằng giá trị giả không? Theo mặc định nó sẽ bằng 0, và tôi không muốn phải hạt giống mọi tham số hoặc thêm một giá trị giả vào enum của tôi. Tôi có khả năng nhận được nhiều lệnh ghép ngắn với 100 tham số, phải có cách tốt hơn. Điều này liên quan đến this question nhưng tôi đang tìm kiếm một cách làm sạch hơn. Cảm ơn.
@Jack Straw Nếu bạn có "khả năng có nhiều lệnh ghép ngắn với 100 tham số", bạn có thể muốn xem xét một số chức năng đó. Một trong những lợi ích chính của PowerShell là khả năng phát hiện và có số lượng lớn các tham số giúp cho việc khám phá bản thân trở nên khó khăn hơn nhiều. –
@Steven, xin lỗi tôi có thể đã gây hiểu lầm - không phải mỗi lệnh có 100 tham số :), nhưng nhiều lệnh ghép ngắn dẫn đến nhiều tham số. Cảm ơn bình luận của bạn. –