Hola yasmani hace rato que no toco el autoit ando con mucho trabajo encima...
Lo primero que te digo es que nunca use For In... para mi es novedad pasar por todos los elementos de un arreglo de esa manera, yo usaba el For To para eso... te voy a modificar el ejemplo un poquito metiendo la condicion "If" dentro del bucle for para que te salga un msgbox si encuentra el archivo y lo voy a hacer de las dos maneras, usando For In y For To.
For In...
Código: Seleccionar todo
Dim $aArray[4]
$aArray[0] = "archivo.txt"
$aArray[1] = "imagen.jpg"
$aArray[2] = "proyecto.psd"
$aArray[3] = "deber.dock"
For $element In $aArray
If FileExists("D:\" & $element) Then
MsgBox(0, "archivo", "" & $element) ;
EndIf
Next
For To...
Código: Seleccionar todo
Dim $aArray[4]
$aArray[0] = "archivo.txt"
$aArray[1] = "imagen.jpg"
$aArray[2] = "proyecto.psd"
$aArray[3] = "deber.dock"
For $element = 0 To Ubound($aArray) - 1
If FileExists("D:\" & $aArray[$element]) Then
MsgBox(0, "archivo", "" & $aArray[$element])
EndIf
Next
Respecto a encontrar todos los archivos con una extension especifica dentro de una carpeta que contiene mas carpetas, deverias usar una funcion recursiva.. Esto significa una funcion que se llama a si misma dentro de ella, hay un par de reglas para hacer esto y evitar que el script crashee, la mejor explicaciòn de esto la encontre en la wiki del foro de AutoIt en Inglés.
http://www.autoitscript.com/wiki/Recursion
Si te cuesta entenderlo pregunta y ahondamos la explicación aca y en castellano, no es molestia preguntar
Igualmente te dejo un code que busca los archivos txt en todas los subdirectorios del disco "D" para que veas como ejemplo... este code es una modificación del que vas a encontrar en el link que te dejé aca.
Disculpá si tardé en contestarte el mensaje que me mandaste pero ando trabajando tanto que si te dijiera cuanto llamarias a una organización de derechos humanos para que interviniera la empresa en la que estoy trabajando... sin exagerar!
Código: Seleccionar todo
ListFiles_Recursive("D:\", "txt")
Func ListFiles_Recursive($sSourceFolder, $sExtension)
Local $sFile
; Force a trailing \
If StringRight($sSourceFolder, 1) <> "\" Then $sSourceFolder &= "\"
; Start the search
Local $hSearch = FileFindFirstFile($sSourceFolder & "*.*")
; If no files found then return
If $hSearch = -1 Then Return ; This is where we break the recursive loop <<<<<<<<<<<<<<<<<<<<<<<<<<
; Now run through the contents of the folder
While 1
; Get next match
$sFile = FileFindNextFile($hSearch)
; If no more files then close search handle and return
If @error Then ExitLoop ; This is where we break the recursive loop <<<<<<<<<<<<<<<<<<<<<<<<<<
; Check if a folder
If @extended Then
; If so then call the function recursively
ListFiles_Recursive($sSourceFolder & $sFile, $sExtension)
Else
; If a file than write path and name
If StringRight($sFile,3) = $sExtension then ConsoleWrite("Found: " & $sSourceFolder & $sFile & @CRLF)
EndIf
WEnd
; Close search handle
FileClose($hSearch)
EndFunc ;==>ListFiles_Recursive