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