如何向管道化PowerShell单行脚本传递参数?以Scoop安装为例
如何给Scoop安装脚本传递
-ScoopDir参数 以下是两种可行的实现方式:
方法一:直接通过iex传递参数
下载脚本后,直接在iex命令后追加参数即可,PowerShell会自动将参数传递给iex执行的安装脚本:
irm get.scoop.sh | iex -ScoopDir C:\foo\bar
如果目标路径包含空格,记得给路径添加引号:
irm get.scoop.sh | iex -ScoopDir "C:\foo my bar"
方法二:通过脚本块执行(更稳妥的复杂场景方案)
将下载的脚本内容转换为脚本块,再用&调用并传递参数,这种方式在处理特殊字符、复杂参数时更可靠:
& ([ScriptBlock]::Create((irm get.scoop.sh))) -ScoopDir C:\foo\bar
原理说明
原单行命令irm get.scoop.sh | iex仅执行了下载到的Scoop安装脚本,但未传递任何参数。上述两种方法的核心都是将-ScoopDir参数传递给安装脚本本身——因为Scoop的官方安装脚本本身设计支持接收这类参数来指定自定义安装目录。
内容的提问来源于stack exchange,提问作者tresf
相关产品推荐
相关产品推荐

