Я пытаюсь выяснить, как заставить PowerShell выполнять синтаксический анализ строки в режиме выражения при передаче параметра, содержащего значение другого параметра, в функцию.Например, я хочу передать два параметра в функцию со вторым параметром, используя значение первого параметра.Я знаю, что парсер должен оценить значение второго параметра в режиме выражения, но выходные данные, похоже, не разрешают значение первого параметра.
PowerShell Command # 1 Этот пример работает так, как нужно, и подтверждает, что командавычисляется в режиме выражения при использовании подвыражения около 2 + 2
& { param($test1,$test2); $test1; $test2 } "foo" "Test 1 value: $(2 + 2)"
Вывод
foo
Test 1 value: 4
PowerShell Command # 2 Теперь, когда я пытаюсь сделать то же самое, чтобы получить параметр два ($test2) ссылаются на значение для параметра один ($ test1), выражение, кажется, не оценивается или, по крайней мере, значение для $ test1 пустое или пустое.
& { param($test1,$test2); $test1; $test2 } "foo" "Test 1 value: $($test1)"
Выходные данные
foo
Test 1 value:
Обратите внимание, что значение Test 1 пустое, когда я думаю, что оно должно быть "foo", значением, переданным в параметре $ test1.Что мне не хватает в области параметров в функции PowerShell?Почему значение $ test1 недоступно для ссылки в выражении, переданном в качестве значения для $ test2?Есть ли более элегантный способ сделать это?