В качестве наилучшей практики в сценариях я бы предложил явно использовать имена параметров и передавать правильный тип, а не давать интерпретатору указание для вас (Uri
занимает System.Uri
, а System
импортируется в PowerShell какпо умолчанию):
$uri = [Uri]'https://unpkg.com/@pnpm/self-installer'
$js = Invoke-RestMethod -Uri $uri
Причина вашей синтаксической ошибки?символ @
является особенным в PowerShell для функции под названием Splatting.
Когда я запустил вышеизложенное, он выплевывает содержимое сценария js
на мою консоль.Тогда можно предположить, что node
принимает cli, ввод по каналу и находится в вашем PATH:
$js | node
Другое предположение: у вас есть install
в вашем PATH, или сценарий создает какой-то интерактивный терминал:
$ install pnpm
--location
здесь не требуется, поскольку Invoke-RestMethod
по умолчанию будет выполнять перенаправление до 5 переходов (это можно настроить с помощью MaximumRedirection
).