繁体   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