Tôi đang cố gắng viết hàm bao bọc trong PowerShell về cơ bản đánh giá tham số đầu tiên và dựa trên đó chạy chương trình trên máy tính. Tất cả các tham số còn lại cho hàm wrapper sau đó sẽ được chuyển đến chương trình đang chạy.Chức năng trình bao trong PowerShell: Chuyển các tham số còn lại
Vì vậy, nó sẽ giống như thế này:
function test ([string] $option)
{
if ($option -eq 'A')
{
Write-Host $args
}
elseif ($option -eq 'B')
{
. 'C:\Program Files\some\program.exe' $args
}
}
Bây giờ chỉ cần thêm $args
không hoạt động, vì vậy những gì tôi phải làm gì để làm cho nó hoạt động? Một lựa chọn khác có thể sẽ sử dụng Invoke-Expression
, nhưng nó cảm thấy một chút như eval
vì vậy tôi muốn tránh nếu có thể, và ngoài ra tôi nghĩ rằng làm như thế sẽ giới hạn tôi để chuỗi chỉ thông số phải không? Nếu có thể, tôi sẽ muốn có sự hỗ trợ đầy đủ cho chương trình/cmdlet được gói gọn - về cơ bản giống như một bí danh động. Điều đó thậm chí có thể?