Yoxcel, можно, конечно, и «FileFindFirstFile/FileFindNextFile», однако в этом случае, на мой взгляд, самое простое — пользовать не средства AutoIt, а библиотеку «Scripting.FileSystemObject»:
Код:
$objFSO = ObjCreate("Scripting.FileSystemObject")
и делать сие по полной аналогии с известными скриптами vbscript
:
Код:
Local Const $DriveTypeFixed = 2
Local $objFSO
Local $objDrive
$objFSO = ObjCreate("Scripting.FileSystemObject")
For $objDrive In $objFSO.Drives()
If $objDrive.DriveType = $DriveTypeFixed Then
ScanFolders($objDrive.RootFolder)
EndIf
Next
$objFSO = ""
Exit(0)
;=============================================================================
;=============================================================================
Func ScanFolders($objFolder)
Local $objSubFolder
Local $objFile
; Перебирать можно как в нисходящей…
ConsoleWrite("[" & $objFolder.Path & "]" & @CRLF)
For $objFile In $objFolder.Files
ConsoleWrite($objFile.Name & @CRLF)
Next
For $objSubFolder In $objFolder.SubFolders
ScanFolders($objSubFolder)
Next
; …так и в восходящей последовательности.
;ConsoleWrite("[" & $objFolder.Path & "]" & @CRLF)
;
;For $objFile In $objFolder.Files
; ConsoleWrite($objFile.Name & @CRLF)
;Next
EndFunc
;=============================================================================
добирая недостающий функционал уже средствами самого AutoIt.
читать дальше »
Я часто удивляюcь, почему столь нередко забывают и обходят стороной одно из самых выдающихся достижений AutoIt — использование Automation.