В основном вы ищете способ использовать метод. Это полезно только для командлетов и функций, а не для методов. Однако PowerShell поддерживает то, что называется Динамический вызов метода , что может хорошо работать здесь.
Рассмотрим этот базовый пример, сравнивающий две строки. Мы поставляем .Compare()
массив, который вы можете изменять по мере необходимости.
# Compare the two strings of mixed case
$strings = "F","f"
[string]::Compare.Invoke($strings)
# Compare the two strings of mixed case but set the ignore case flag
$strings = "F","f",$true
[string]::Compare.Invoke($strings)
Результаты для вышеупомянутого должны быть 1 затем 0, поскольку эти строки совпадают только тогда, когда регистр игнорируется.
Обычно Compare()
возвращает True или false. Таким образом, он просто возвращает целое число, где ненулевое значение соответствует несоответствующим строкам.
Итак, давайте попробуем это с вашим кодом.
$arguments = "Start","param1","param2","param3"
$excel.Run.Invoke($arguments)
У меня нет идеальной настройки для тестирования, но она должна работать. Остерегайтесь возвращаемых значений, возможно, придется обрабатывать по-другому с помощью этого подхода. Тест!