簡體   English   中英

使用NSIS FileFunc.nsh解析命令行參數得到不正確的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM