如何在 Chocolatey 中传递包含斜线的参数?
How can i pass a parameter containing a slash in Chocolatey?
我正在尝试安装需要将密码传递给安装脚本的软件包。
choco install <mypackage> -d -s <mysource> -y --params "/username:<username> /password:<password>"
如果 <username>
或 <password>
包含一个正斜杠 chocolatey 拆分参数并且只使用到第一个斜杠的部分。
如何传递包含一个或多个斜杠的参数,而不让 Chocolatey 将它们解释为参数列表的分隔符?
编辑:
巧克力安装。ps1
$ErrorActionPreference = 'Stop'; # stop on all errors
$pp = Get-PackageParameters
$username = $pp['username']
$password = $pp['password']
Write-Host ("Credentials Username '{0}'" -f $username)
Write-Host ("Credentials Password '{0}'" -f $password)
#[do install stuff]
Powershell 命令
choco install <packagename> v1.2.123.4 -d -s C:\Users\<foo>\Desktop\ -y --params "'/username:value' '/password:val/ue'"
输出
Running Get-PackageParameters
Parsing $env:ChocolateyPackageParameters and $env:ChocolateyPackageParametersSensitive for parameters
Adding package param 'username'='value' ''
Adding package param 'password'='val'
Adding package param 'ue'='True'
Credentials Username 'value' ''
Credentials Password 'val'
这里的网站上有很多关于使用包参数的文档:
https://chocolatey.org/docs/how-to-parse-package-parameters-argument
如果你按照那里的一些代码,你最终会得到这样的东西:
$pp = Get-PackageParameters
Write-Host $pp['LICENSE']
如果您随后使用以下方式调用它:
choco install <pkg_id> --params "'/LICENSE:val/ue'"
你会看到它正确输出
val/ue
这就是我认为你想要的。
注意:那篇文章和这个答案假定您使用的是 Chocolatey 0.10.8。
注意: 这进一步假设您 NOT 使用 chocolatey-core.extension 包。它处理参数解析的方式与内置函数的处理方式略有不同。
将其扩展为两个参数:
$pp = Get-PackageParameters
Write-Host $pp['LICENSE']
Write-Host $pp['PASSWORD']
并用这个调用:
choco install <pkg_id> --params "'/LICENSE:val/ue' '/PASSWORD:value/1'"
应该输出
val/ue
然后
value/1
我正在尝试安装需要将密码传递给安装脚本的软件包。
choco install <mypackage> -d -s <mysource> -y --params "/username:<username> /password:<password>"
如果 <username>
或 <password>
包含一个正斜杠 chocolatey 拆分参数并且只使用到第一个斜杠的部分。
如何传递包含一个或多个斜杠的参数,而不让 Chocolatey 将它们解释为参数列表的分隔符?
编辑:
巧克力安装。ps1
$ErrorActionPreference = 'Stop'; # stop on all errors
$pp = Get-PackageParameters
$username = $pp['username']
$password = $pp['password']
Write-Host ("Credentials Username '{0}'" -f $username)
Write-Host ("Credentials Password '{0}'" -f $password)
#[do install stuff]
Powershell 命令
choco install <packagename> v1.2.123.4 -d -s C:\Users\<foo>\Desktop\ -y --params "'/username:value' '/password:val/ue'"
输出
Running Get-PackageParameters
Parsing $env:ChocolateyPackageParameters and $env:ChocolateyPackageParametersSensitive for parameters
Adding package param 'username'='value' ''
Adding package param 'password'='val'
Adding package param 'ue'='True'
Credentials Username 'value' ''
Credentials Password 'val'
这里的网站上有很多关于使用包参数的文档:
https://chocolatey.org/docs/how-to-parse-package-parameters-argument
如果你按照那里的一些代码,你最终会得到这样的东西:
$pp = Get-PackageParameters
Write-Host $pp['LICENSE']
如果您随后使用以下方式调用它:
choco install <pkg_id> --params "'/LICENSE:val/ue'"
你会看到它正确输出
val/ue
这就是我认为你想要的。
注意:那篇文章和这个答案假定您使用的是 Chocolatey 0.10.8。
注意: 这进一步假设您 NOT 使用 chocolatey-core.extension 包。它处理参数解析的方式与内置函数的处理方式略有不同。
将其扩展为两个参数:
$pp = Get-PackageParameters
Write-Host $pp['LICENSE']
Write-Host $pp['PASSWORD']
并用这个调用:
choco install <pkg_id> --params "'/LICENSE:val/ue' '/PASSWORD:value/1'"
应该输出
val/ue
然后
value/1