2017-12-14 10 views
-1

설치 스크립트에 패스워드가 필요한 패키지를 설치하려고합니다. <username> 또는 <password>가 슬래시 chocolatey 포함 된 경우어떻게 Chocolatey에 슬래시가 포함 된 매개 변수를 전달할 수 있습니까?

choco install <mypackage> -d -s <mysource> -y --params "/username:<username> /password:<password>" 

파라미터를 분할하고 첫 번째 슬래시까지의 부분을 사용한다.

하나 이상의 슬래시가 포함 된 매개 변수를 Chocolatey가 매개 변수 목록에 대한 구분 기호로 해석하지 않고 전달할 수 있습니까?

편집 :

chocolateyinstall.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' 
+0

작은 따옴표로 큰 차이가 있습니까? '--params '/ username : /password : ' –

+0

@JamesC. 아니, 같은 지점에서 매개 변수를 나눕니다. 큰 따옴표를 사용하고 암호 주위에 작은 따옴표를 넣으면 installscript를 실행하기 전에 이미 실패합니다. (운영자로 암호에서 '+'를 잘못 해석 함) – floworbit

+0

오, Chocolatey의 내부 문제입니다. https://github.com/chocolatey/choco/issues –

답변

1

여기에 웹 사이트에 패키지 매개 변수를 사용하는 방법에 대한 문서 꽤 있습니다 :

$pp = Get-PackageParameters 

Write-Host $pp['LICENSE'] 
: 당신이 거기에 코드의 일부를 따르는 경우

https://chocolatey.org/docs/how-to-parse-package-parameters-argument

, 당신은이 같은 끝낼 것은 당신이 다음에 이것을 호출하면

:

choco install <pkg_id> --params "'/LICENSE:val/ue'" 

제대로

를 출력 당신은 볼 것이다

val/ue

나는 당신이 생각하는 것입니다.

참고 : 해당 기사 및이 대답은 Chocolatey 0.10.8을 사용한다고 가정합니다.

참고 :이 더 당신이 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

+0

이것은 제대로 작동하지 않습니다. 나는 당신의 포스트에서 코드를 가지고 시험해 보았고 출력은 라이센스의 "val"과 패스워드의 "value"이었다. – floworbit

+0

어떤 Chocoly 버전을 사용하고 있습니까? 게시하기 전에이 코드를 테스트 한 결과 실제로 작동하는지 확인할 수 있습니다. –

+0

이상합니다. 버전 0.10.8을 사용하고 있습니다. – floworbit