;Tool to archive files with specific extensions grouped by that extension and kept in same file structure
;Will also keep original files in tact
;@Author - Scott Landau
;@Created - 5/23/2010
;@Last Edited - 5/23/2010
;Includes
#include <File.au3>
#include <Array.au3>
#include <Zip.au3>
;Globals
Local $tempExts="ade|adp|app|asa|ashx|asp|bas|bat|cdx|cer|chm|class|cmd|com|cpl|crt|csh|der|exe|fxp|gadget|hlp|hta|htr|htw|ida|idc|idq|ins|isp|its|jse|ksh|lnk|mad|maf|mag|mam|maq|mar|mas|mat|mau|mav|maw|mda|mdb|mde|mdt|mdw|mdz|msc|msh|msh1|msh1xml|msh2|msh2xml|mshxml|msi|msp|mst|ops|pcd|pif|prf|prg|printer|pst|reg|rem|scf|scr|sct|shb|shs|shtm|shtml|soap|stm|url|vb|vbe|vbs|ws|wsc|wsf|wsh"
Local $arrayExts = StringSplit($tempExts, "|")
;Methods
;Get the root directory for the archive
;@Return String
Func getRoot()
Local $root = FileSelectFolder("Select Root:", "C:\")
Return $root
EndFunc
;Gets all the subdirectories of the given directory
;@Param String
;@Return Array
Func getAllDirs($dir)
Local $folderList = _FileListToArray($dir, "*", 2)
Return $folderList
EndFunc
;Gets all the files of the given directory
;@Param String
;@Return Array
Func getAllFiles($dir)
Local $fileList = _FileListToArray($dir, "*", 1)
Return $fileList
EndFunc
;Get the file extension
;@Param String
;@Return String
Func getExt($file)
Local $ext
Local $pos = StringInStr($file, ".")
$ext = StringTrimLeft($file, $pos)
Return $ext
EndFunc
;Is bad extension?
;@Param String
;@Return Int
Func isBad($file)
Local $retval
Local $ext = getExt($file)
Local $pos = _ArraySearch($arrayExts, $ext)
If Not ($pos == -1) Then
$retval = 1
Else
$retval = 0
EndIf
Return $retval
EndFunc
;Get all file extensions in current directory
;@Param String
;@Return Array
Func getAllExts($dir)
Local $added = 0
Local $allExts[1]
Local $files = getAllFiles($dir)
Local $max = UBound($files)
For $i = 0 to $max - 1
Local $ext = getExt($files[$i])
If ($added == 0) Then
$allExts[0] = $ext
$added = 1
Else
_ArrayAdd($allExts, $ext)
EndIf
Next
EndFunc
;Actual archiving algorithm
;@Param String
Func algorithm($dir)
Local $dirs = getAllDirs($dir)
Local $files = getAllFiles($dir)
Local $allExts = getAllExts($dir)
Local $numExts = UBound($arrayExts)
Local $numFiles = UBound($files)
For $i = 0 to $numExts - 1
Local $pos = _ArraySearch($allExts, $arrayExts[$i])
If Not ($pos == -1) Then
$zip = _Zip_Create(@WorkingDir & "\" & $arrayExts[$i] & "_zip.zip")
For $j = 0 to $numFiles - 1
Local $fileExt = getExt($files[$j])
If ($fileExt == $arrayExts[$i]) Then
_Zip_AddFile($zip, $files[$j])
EndIf
Next
EndIf
Next
Local $numDirs = UBound($dirs)
For $k = 0 to $numDirs - 1
algorithm($dirs[$k])
Next
EndFunc
;Main archiving function to be run in 'Main' comment field
;Void
Func main()
Local $root = getRoot()
algorithm($root)
EndFunc
;Main
main()
ответ
Чтобы выяснить, что случилось, вам нужно либо:
- Добавить прогрессбар и обновлять его как приложение работает через каждую функцию.
- Используйте ConsoleWrite(), чтобы помочь вам отслеживать, что делает приложение, когда оно выполняется при отладке в Scite.
- Запишите свой прогресс/успех/ошибки в файл журнала, который вы можете проверить после запуска приложения.
Я бы рекомендовал сделать все вышеперечисленное.
# AutoIt3Wrapper_run_debug_mode = Y В верхней части скрипта будет выведена оболочка каждой строки в consolewrite. – Copas
Кроме того, использование ящиков сообщений в ключевых местах, особенно для содержимого переменных, может быть полезно, чтобы увидеть, работает ли программа так, как вы ожидали бы на определенных этапах на этом пути. – MaQleod
- 1. AutoIt скрипт не работает для загрузки файла,
- 2. AutoIt Mouse Script не работает
- 3. сценарий autoit не работает
- 4. AutoIt Отправить() Не работает
- 5. AutoIt PixelGetColor не работает
- 6. Autoit hotkeyset не работает
- 7. Выполнить скрипт powershell из Autoit?
- 8. AutoIt запустить скрипт из переменной
- 9. AutoIt скрипт «не может найти файл» ошибка
- 10. Выполнять скрипт Python из AutoIt
- 11. Функция AutoIt _IELinkClickByText не работает
- 12. функция не работает правильно (AutoIt)
- 13. Если инструкция не работает AutoIT
- 14. AutoIt не работает с хромом
- 15. Autoit OnAutoItExitRegister(), похоже, не работает
- 16. AutoIt: Отправить ("{DOWN}") не работает
- 17. autoit не работает от php silenum
- 18. AutoIT Скрипт для обработки Chrome аутентификации Окно
- 19. Поиск изображений AutoIt не работает должным образом
- 20. удаленный скрипт управления автоматической настройкой AutoIt
- 21. Скрипт AutoIt для закрытия окна PDF-файла
- 22. Как вызвать скрипт AutoIt в Python
- 23. AutoIt ControlCommand не работает должным образом
- 24. AutoIt ControlClick не работает со скрытым окном
- 25. Мой скрипт AutoIT компилируется без ошибок, но ничего не делает
- 26. Скрипт Autoit будет запущен, но ничего не будет
- 27. Функция ControlSend не работает в AutoIt (вызов в python)
- 28. Почему сценарий Autoit не работает через SSH (W10)?
- 29. .exe не открывается в AutoIt?
- 30. AutoIT - не нажимает
Необходимо предоставить более подробную информацию. Возможно, вам необходимо обновить исходный вопрос (http://stackoverflow.com/questions/2867689/autoit-scripts-runs-without-error-but-i-cant-see-archive- обновление) вместо создания нового. – aphoria