У меня есть сценарий, который отлично работает при запуске из кода ISE или VS с параметрами, заданными в коде, как
param(
[string]$Param1 = "example",
[string[]]$Param2 = @('arrayparam1','arrayparam2'),
[string[]]$Param3 = @('arrayparam1','arrayparam2'),
[switch]Param4 = $true
)
Но всякий раз, когда я запускаю этот сценарий без параметров в коде, но с параметрами из консоли, например
.\Script -Param1 example -Param2 'arrayparam1','arrayparam2' -Param3 'arrayparam1','arrayparam2' -Param4
он запускается, но генерирует пустой CSV-файл (с параметром в коде это прекрасно работает). Итак, я запустил этот скрипт с «powershell.exe -File» (который сгенерировал хороший файл) следующим образом:
powershell.exe -File .\Script -Param1 example -Param2 'arrayparam1','arrayparam2' -Param3 'arrayparam1','arrayparam2' -Param4
Но проблема в том, что он принимает только первый элемент из массива. Если второй массив пуст, он передает второй элемент из первого массива во второй массив в качестве первого элемента (это поразило меня).
Моя цель - запустить этот сценарий со всеми параметрами из консоли без "-powershell.exe - Файл". Я пробовал различные ExecutionPolicy, и теперь я использую RemoteSigned. Я использую PowerShell, PowerShell ISE и VS код для проверки этого, но он всегда работает одинаково. Я пробовал передавать массивы как "1", "2", ('1', '2'), @ ("1", "2"), но это никогда не работает.
Пожалуйста, помогите