Well FTP does not support an If Exist contruct directly. You might be able to do some listing to a temporary file and then parse the temporary file though. Here is something that works well on the Symantec site which I'm sure could be modified to work on McAfee's site if wanted.;REQUIREMENTS: ;1: Must be run with an account that has Admin rights on the AV Servers ;2: KiXtart v4.22 or newer. ;Download: http://www.kixtart.org/binary/distrib/KiX2010_451.zip ;3: Only requires the WKIX32.EXE file from within the KiXtart zip file, ;all other files are not required ;4: IE Proxy settings need to allow access to the Symantec site to download files. ;*** NOTE - WARNING *** ;Must only be run for Symantec Antivirus 8.x and 9.x and 10.x Servers. ;Do not include any 7.x Servers in the list. Break On Dim $SO $SO =SetOption ('Explicit' ,'On' )$SO =SetOption ('NoVarsInStrings' ,'On' )$SO =SetOption ('NoMacrosInStrings' ,'On' ) Dim $URL ,$Link ,$RC ,$Page ,$Server ,$Servers ,$File ,$Download ,$Target ,$FileSize $URL ='http://www.sarc.com/avcenter/download/pages/US-SAVCE.html' $Link ='http://definitions.symantec.com/defs/xdb/' $RC =readHTML ($URL )$File =InStr ($RC ,$Link )$File =SubStr ($RC ,$File +41 ,12 )$Download = $Link + $File ; Location where the file will be downloaded to $Target ='C:\DOWNLOAD\' ; Array list of 2000/2003 Servers $Servers ='AV01' ,'AV02' 'Downloading ' + $File + ' Please wait...' ?If FTPget ($Download ,$Target +$File ) ; Unless link is completely down, probably will never get this error 'Error occured: ' + @ERROR + ' ' + @SERROR ?Else 'Download complete... File saved in ' + $Target + ' as ' + $File ? ; Check the size of the file to confirm you didn't download just blank ; or small html file $FileSize = GetFileSize ($Target +$File ) If $FileSize >9000000 'Ready to update AntiVirus Defs ' ? 'File size downloaded was: ' + $FileSize ? ;Copy the XDB file to the 2000/2003 Servers For Each $Server In $Servers Copy $Target +$File '\\' +$Server +'\c$\PROGRA~1\SAV' 'Copying to ' + $Server +'... ' + @ERROR + ' ' + @SERROR ? Next ; This line archives the definition files to AV02 for reference MOVE $Target +$File '\\AV02\xdb\' 'Moving xdb file to AV02 archive... ' +@ERROR + ' ' + @SERROR ? 'Definition updates completed...' ? 'Please press a key to continue...' ? Else 'The file size appears to be too small. ' + 'Update aborted, please try later...' ? 'File size was: ' + $FileSize ? Del $Target +$File 'Press a key to continue...' ?? GET $Pause Quit 1 EndIf 'Press a key to continue...' ?? GET $Pause EndIf Function readHTML($page )Dim $obj $obj =createobject ("microsoft.xmlhttp" ) $obj.open ("get" ,$page ,not 1 ) $obj.send $readHTML =$obj.responsebody EndFunction Function FTPget($sURL , $sTargetFile , optional $sUser , optional $sPass ) Dim $oFTP , $oStream $sUser ="" +$sUser $oFTP = CreateObject ("Microsoft.XMLHTTP" ) if @error $ftpget =1 exit 1 endif $oStream = CreateObject ("ADODB.Stream" ) if @error $ftpget =2 exit 2 endif if $sUser $oFTP.Open ("GET" , $sURL , not 1 , $sUser , $sPass ) else $oFTP.Open ("GET" , $sURL , not 1 ) endif if @error $ftpget =3 exit 3 endif $oFTP.Send $oStream.Type = 1 $oStream.Mode = 3 $oStream.open $oStream.Write ($oFTP.responseBody ) if @error $ftpget =4 exit 4 endif $oStream.SaveToFile ($sTargetFile , 2 ) if @error $ftpget =5 exit 5 endif $oStream.Close EndFunction