我們有是用 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 是你想判斷的文件