我必须在NSIS安装程序中将文件解压缩到输出文件夹。该文件的名称包含其版本号。我需要一种方法来读取以我的文件名写的数字。
示例文件名:
MyFile_4.3_runtime_80968_x64.exe
我使用以下代码自动读取它:
Var Version
Section
${GetFileVersion} "F:\FilesToBeInstalled\MyFile_4.3_runtime_?????_x64.exe" $Version
MessageBox MB_OK "Version: $Version"
SectionEnd
早些时候它曾经为我工作过。但突然间它停止了工作。如果我写了正确的数字而不是写?????
那么它就可以了。例如,以下代码适用于我:
Var Version
Section
${GetFileVersion} "F:\FilesToBeInstalled\MyFile_4.3_runtime_80698_x64.exe" $Version
MessageBox MB_OK "Version: $Version"
SectionEnd
答案 0 :(得分:1)
GetFileVersion
读取文件的version-information,它不解析文件名。它以前的工作可能是巧合。
您可以使用WordFind2x
在两个分隔符之间进行搜索:
!include "WordFunc.nsh"
Var Version
Var File
Section
# find instances of MyFile_4.3_runtime*
FindFirst $0 $File "F:\FilesToBeInstalled\MyFile_4.3_runtime*.exe"
loop:
StrCmp $File "" done
# parse hit for version string
${WordFind2X} $File "MyFile_4.3_runtime_" ".exe" "-1" $Version
DetailPrint "$File contains version $Version"
FindNext $0 $File
Goto loop
done:
FindClose $0
SectionEnd