[英]parsing command line arguments with NSIS FileFunc.nsh gets incorrect values
我有一個NSIS腳本,其中包含以下代碼,用於解析稱為“ GUID”的命令行參數:
!include FileFunc.nsh
...
${GetParameters} $R0
ClearErrors
${GetOptions} $R0 '/GUID=' $guid
它試圖解析的值是一個GUID:一個16位十六進制數字,帶有連字符,分隔每個4個字符的塊。 因此,命令行如下所示:
myprogram.exe /S /GUID=8a97-7c4f-09b7-a856-96e3
問題在於此代碼返回的是看起來有些隨機的值,而不是命令行中的guid值。 我做了一些實驗,確定如果傳入純整數,則可以解析該參數,但是如果命令行參數包含連字符或字母,則值是錯誤的。
我無法在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.