我有递归搜索一个问题,但首先一些关键数据:为SQL文件递归搜索目录中(NSIS)
- 我有几个目录充满了SQL文件,我想复制到$ TEMP
- 目录我想从这个样子的v2.1.0.0
- 的那一刻,目录v2.5.0.0到v2.7.0.3已经被读取
- 文件夹不必须是“读下一个“所以v2.5.0.3可以跟随v2.5.0.0
- 我使用LogicLib
- 我是新来的这门语言(Java之前),这是我的第一个任务
我目前正试图以$ {foreach}的
解决问题!macro GetSQLVersionFiles first second third fourth
SetOutPath $TEMP
${ForEach} ${first} 0 9 + 1
${ForEach} ${second} 0 9 + 1
${ForEach} ${third} 0 9 + 1
${ForEach} ${fourth} 0 9 + 1
IfFileExists "scripte\v${first}.${second}.${third}.${fourth}" 0 +2
File "scripte\v${first}.${second}.${third}.${fourth}\*.sql"
${next}
${next}
${next}
${next}
!macroend
所以我的想法是,为了使它可行,以后,有一个宏的4个参数,其中可以把起始目录,说所需的“2 5 0 0”,它迭代通过每个文件夹,并提出找到的.sql文件放到$ TEMP目录中
我已经已经尝试过
- 指的所有参数没有{}
- 写作“$ {首先} $ {首先} 9 + 1(认为这只会重复从第一个到9)
的错误我得到的是以下
!insertmacro: _ForEach
Usage: StrCpy $(user_var: output) str [maxlen] [startoffset]
Error in macro _ForEach on macroline 3
Error in macro GetSQLVersionFiles on macroline 2
Error in script "\\NAMEOFMYSCRIPT -- aborting creation process
第三行中LogicLib的_ForEach是
StrCpy "${_v}" "${_f}" ; Assign the initial value
在此先感谢您的帮助:)
非常感谢! 我想做第二个,从安装程序中提取文件。 我想我会开始研究批处理,谢谢! –