Что нового

[Автоматизация] Работа скрипта в основной папке и ее подкаталогах

Wulk@n

Новичок
Сообщения
34
Репутация
0
Версия AutoIt: 3.3.12.0

Описание:
Здравствуйте пользователи форума autoit-script.ru есть готовый скрипт все работает Ура но только в определенно заданной папке как сделать так что бы скрипт выполнял свою работу не только в данной папке но и во всех папках которые в ней будут ! (Имена папок в папке NeW рандомные )



Примечания:

Код:
Global $Folder = @DesktopDir & "/NeW" ; путь к папке
Global $Mask = "*" ; маска файлов
Global $Files = _FileListToArrayRec($Folder, $Mask, 1, 1, 0, 2)
If @error Then Exit
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Wulk@n
Так он и выполняет...

4 аргумент, $FLTAR_RECUR (1) - Search in all subfolders (unlimited recursion)
Код:
#Include <Array.au3>
#Include <File.au3>

Global $aFiles = _FileListToArrayRec(@DesktopDir, "*", 0, 1, 0, 2)
_ArrayDisplay( $aFiles )


Вырезка из результата:
Код:
[31162]|C:\Users\Firex\Desktop\OllyDbg\tiptsf.udd
[31163]|C:\Users\Firex\Desktop\OllyDbg\USER32.udd
[31164]|C:\Users\Firex\Desktop\OllyDbg\USP10.udd
[31165]|C:\Users\Firex\Desktop\OllyDbg\UxTheme.udd
[31166]|C:\Users\Firex\Desktop\OllyDbg\version.udd

Запустите и сами убедитесь.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Автоматизация] Под каталогов

Wulk@n,
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Автоматизация] Под каталогов" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#Include <File.au3>

_EnumFiles(@DesktopDir & '\NeW', '*')

Func _EnumFiles($sRoot, $sFile)
    Local $aList = _FileListToArray($sRoot, $sFile, 1)
    If Not @Error Then
        For $i = 1 To $aList[0]
            ConsoleWrite($sRoot & '\' & $aList[$i] & @CR) ; Делаем что-либо с файлами здесь
        Next
    EndIf
    $aList = _FileListToArray($sRoot, '*', 2)
    If Not @Error Then
        For $i = 1 To $aList[0]
            _EnumFiles($sRoot & '\' & $aList[$i], $sFile)
        Next
    EndIf
EndFunc   ;==>_EnumFiles
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Yashied,
У Вас опечатка в имени функции при рекурсии.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Поправил, спасибо.

P.S

А вообще, в _FileListToArrayRec() есть рекурсия, только массив может получиться немеренный. У ТС как раз и используется рекурсия. Тогда непонятно в чем вообще заключается вопрос.
 
Верх