gpt4 book ai didi

powershell - 使用PowerShell进行Ruby静默安装

转载 作者:行者123 更新时间:2023-12-03 01:09:46 26 4
gpt4 key购买 nike

我正在尝试通过PowerShell通过以下提到的选项以静默方式安装Ruby:

echo "Installing Ruby 2.0.0"
$ruby_inst_process = Start-Process "C:\Users\guest_new\Downloads\rubyinstaller-2.0.0-p648-x64.exe" /silent /tasks='assocfiles,modpath' -PassThru -Wait
if ($ruby_inst_process -ne 0)
{
echo "Ruby 2.0.0 installation failed"
exit 0
}

我收到以下错误:
Start-Process : A positional parameter cannot be found that accepts argument '/tasks=assocfiles,modpath'.
+ ... t_process = Start-Process "C:\Users\guest_new\Downloads\rubyinstaller- ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand

我不确定是否缺少某些内容或只是使用了错误的语法。

最佳答案

使用-ArgumentList参数传递参数。

$ruby_inst_process = Start-Process -FilePath "C:\Users\guest_new\Downloads\rubyinstaller-2.0.0-p648-x64.e‌​xe" -ArgumentList "/silent /tasks='assocfiles,modpath'" -PassThru -Wait 

为了使它更容易理解,请使用变量将其分解。
$exe = "C:\Users\guest_new\Downloads\rubyinstaller-2.0.0-p648-x64.e‌​xe"
$args = "/silent /tasks='assocfiles,modpath'"

$ruby_inst_process = Start-Process -FilePath $exe -ArgumentList $args -PassThru -Wait

此行中还有一个错误: if ($ruby_inst_process -ne 0) Start-Process -PassThru返回的是 Process对象,而不是简单的数字或字符串。您可能想要的是此对象上的 ExitCode属性。
if ($ruby_inst_process.ExitCode -ne 0) {
"Ruby 2.0.0 installation failed"
exit 0
}

关于powershell - 使用PowerShell进行Ruby静默安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41249551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com