我们有是用 NSIS 来封装安装程序的时候需要判断某些文件或文件夹中否存在,可以用用 NSIS自带的 IfFileExists 来测式
4.9.4.10 IfFileExists
要检测的文件 文件存在时跳转的标记 [文件不存在时跳转的标记]
检测 "要检测的文件" 是否存在(可以用通配符,或目录),并当文件存在时跳转到 "文件存在时跳转" ,否则跳转到"文件不存在时跳转" 。如果你要检测目标是文件还是目录,请使用 IfFileExists "目录\*.*" 。
IfFileExists $WINDIR\notepad.exe 0 +2 MessageBox MB_OK "记事本已安装"
列如
Function GetDrivesCallBack
;MessageBox MB_OK $9'你好,你的以有shadowin’
${If} $9 == 'C:\'
Push $0
${Else}
${DriveSpace} "$9" "/D=F /S=M" $R4
IntCmp $R4 '160' end end def
def:
StrCmp $R2 '0' 0 next
StrCpy $R3 '$R4'
StrCpy $R1 '$9'IfFileExists $9\Shadowin.exe 0 +2
StrCpy $R1 '$9(此磁盘已安装ShadoWin软件,是否要更新)'
IntOp $R2 $R2 + 1
next:
StrCpy $R0 '$R0$9'
IfFileExists $9\Shadowin.exe 0 +2
StrCpy $R0 '$R0(此磁盘已安装ShadoWin软件,是否要更新)'
StrCpy $R0 '$R0|'
end:
Push $0
${EndIf}
FunctionEnd红色字体是重点,IfFileExists:是否相等的 ; $9是磁盘:例入c:\ 。Shadowin.exe 是你想判断的文件