Search NSIS查找所有.txt文件
我目前正在检查$INSTDIR中的所有文本文件,如下所示 但是,可能存在子目录,例如$INSTDIR\mySub,其中包含其他.txt文件。有没有办法保持类似的循环结构,但同时搜索所有子目录Search NSIS查找所有.txt文件,search,directory,find,nsis,findfirst,Search,Directory,Find,Nsis,Findfirst,我目前正在检查$INSTDIR中的所有文本文件,如下所示 但是,可能存在子目录,例如$INSTDIR\mySub,其中包含其他.txt文件。有没有办法保持类似的循环结构,但同时搜索所有子目录 FindFirst $R0 $R1 "$INSTDIR\*.txt" IfErrors ExitInstaller 0 LoopIt: Messagebox MB_OK "Do some processing on $R1" FindNext $R0 $R1 IfErrors 0 LoopIt
FindFirst $R0 $R1 "$INSTDIR\*.txt"
IfErrors ExitInstaller 0
LoopIt:
Messagebox MB_OK "Do some processing on $R1"
FindNext $R0 $R1
IfErrors 0 LoopIt
尝试使用
Locate
函数,这可能是更好的解决方案。您可以编写选项来查找有(或没有)子目录、定义掩码等。有关文档和示例,请参阅。在静默模式下有什么不同吗?
Function ProcessTextFiles
Exch $0
Push $1
Push $2
FindFirst $1 $2 "$0\*.txt"
loop:
IfErrors end
DetailPrint 'Found "$0\$2"'
FindNext $1 $2
goto loop
end:
FindClose $1
FindFirst $1 $2 "$0\*.*"
dirloop:
IfErrors dirend
IfFileExists "$0\$2\*.*" 0 dirnext
StrCmp $2 "." dirnext
StrCmp $2 ".." dirnext
Push "$0\$2"
call ${__FUNCTION__}
dirnext:
FindNext $1 $2
goto dirloop
dirend:
FindClose $1
Pop $2
Pop $1
Pop $0
FunctionEnd
section
push "$InstDir"
call ProcessTextFiles
sectionend