2013-12-18 1 views
0

잘못된 값을 얻는다 GUID : 4 자리의 각 블록을 구분하는 하이픈 (hypens)이있는 16 자리 16 진수.구문 분석 명령 줄 인수 내가 "GUID"라는 명령 줄 매개 변수를 구문 분석이 코드를 포함하는 NSIS 스크립트를

myprogram.exe /S /GUID=8a97-7c4f-09b7-a856-96e3 

문제는이 코드가 명령 줄에서 GUID 값이 아닌 다소 무작위로 보이는 값을 반환한다는 것입니다 : 그래서 명령 줄은 다음과 같이 보인다. 나는 약간의 실험을 수행하고 순수한 정수를 전달하면 인수가 구문 분석 될 수 있다고 판단했지만 명령 행 인수에 hypens 또는 문자가 포함 된 경우 값이 잘못되었습니다.

답변

0

나는 NSIS의 v2.46 이것을 재현 할 수

!include FileFunc.nsh 
!include LogicLib.nsh 
var guid 

Section 
${GetParameters} $R0 
ClearErrors 
${GetOptions} $R0 '/GUID=' $guid 
${If} ${Errors} 
     ExecWait '"$exepath" /S /GUID=8a97-7c4f-09b7-a856-96e3' 
${Else} 
     Messagebox mb_ok |$guid| 
${EndIf} 
SectionEnd 
+0

이는 UAC 관련이있을 수 있음을 보인다. 분명히 UAC 플러그인을 사용하여 승격 된 권한으로 실행되는 설치 프로그램은 명령 줄 매개 변수로 실행되지 않습니다. 그럴까요? 그렇다면 해결 방법이 있습니까? –

+0

기억이 안납니다. 프로세스 탐색기로 확인해야합니다 ... – Anders