初学者问个nsis问题

下载SumatraPDF便携版,官方自动带了版本号,比如SumatraPDF-1.1-64.exe和SumatraPDF-1.2-32.exe
使用以下代码
FindFirst $0 $1 “SumatraPDF*.exe”
${WordFind2X} $1 “-” “-” “-1” $2
SetOutPath “$EXEDIR”
${GetParameters} $3
Exec "$EXEDIR\SumatraPDF-$2-64.exe" $3
生成一个SumatraPDFloader.exe来自动引导带版本号的原程序,然后把这个loader关联为pdf的默认打开方式,目的是不管版本号怎么变,我自动删除解压后就能直接用了,不影响文件打开

现在的问题是,同样一个pdf文件只有和loader在同一个目录里才能打开,其他盘和路径,哪怕只是放在上一级路径都打不开

如果换
Exec "$EXEDIR\SumatraPDF-1.2-64.exe" $3
这种固定文件名的又没问题,但是固定的就变成多此一举了

不知道是哪里出了问题

贴吧挂了几天没人看,搬运到这里试试

问题应该是在这一行

除非你先确保SumatraPDFloader.exe启动运行时 当前目录 就是SumatraPDF-1.2-64.exe所在的目录

我感觉是 $2 这个参数获取出错了. 你可以看下 $2 获取数据后的结果.

loader本身是没问题的,能正常打开任何版本的SumatraPDF,
问题出在双击打开pdf的时候,没有反应,除非pdf文件在loader当前目录

所以我的理解是问题出在GetParameters,可能这个参数传递pdf路径信息不能和前面的获取版本一起用,但是我是初学者,不知道怎么解决

$2是获取- -之间的版本号,没有问题