首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过NSIS读取文件名中的数字

通过NSIS读取文件名中的数字
EN

Stack Overflow用户
提问于 2017-01-17 09:36:32
回答 1查看 259关注 0票数 0

我必须将文件解压缩到我的NSIS安装程序中的输出文件夹。文件的名称包含其版本号。我需要一个方法来读取以我的文件名写的数字。

示例文件名:

代码语言:javascript
复制
MyFile_4.3_runtime_80968_x64.exe

我使用以下代码自动读取它:

代码语言:javascript
复制
Var Version
Section
    ${GetFileVersion} "F:\FilesToBeInstalled\MyFile_4.3_runtime_?????_x64.exe" $Version
    MessageBox MB_OK "Version: $Version"
SectionEnd

以前它对我有用。但突然间,它就停止工作了。如果我写正确的数字而不是写?????,那么它就能工作。例如,以下代码适用于我:

代码语言:javascript
复制
Var Version
Section
    ${GetFileVersion} "F:\FilesToBeInstalled\MyFile_4.3_runtime_80698_x64.exe" $Version
    MessageBox MB_OK "Version: $Version"
SectionEnd
EN

回答 1

Stack Overflow用户

发布于 2017-01-17 12:27:44

GetFileVersion读取文件的版本-信息,它不解析文件名.这很可能是一个巧合,它以前起作用了。

您可以使用WordFind2x在两个分隔符之间搜索:

代码语言:javascript
复制
!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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41693566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档