;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()
Répondre
Pour ce qui est mal, vous devez soit:
- Ajouter et mettre à jour une barre de progression comme l'application passe par chaque fonction.
- Utilisez ConsoleWrite() pour vous aider à effectuer le suivi de l'exécution de l'application lors du débogage dans Scite.
- Consignez vos progrès/succès/erreurs dans un fichier journal que vous pouvez examiner après avoir exécuté l'application.
Je recommande de faire tout ce qui précède.
# AutoIt3Wrapper_run_debug_mode = Y En haut d'un script, l'encapsuleur sortira chaque ligne vers consolewrite. – Copas
En outre, l'utilisation de boîtes de message dans des emplacements clés, en particulier pour les contenus variables, peut être utile pour voir si le programme fonctionne comme vous le souhaitez à certaines étapes du processus. – MaQleod
- 1. Grails scripts 1.2.x ne fonctionne pas
- 2. Scripts, CSS et plus qui ne fonctionne pas dans IE6 +?
- 3. Deux scripts Javascript ne fonctionne ensemble
- 4. AjaxHelper ne fonctionne pas
- 5. mod_rewrite ne fonctionne pas
- 6. JQuery Datepicker ne fonctionne pas
- 7. drupal_add_css ne fonctionne pas
- 8. ExternalInterface.addCallback ne fonctionne pas bien
- 9. AppleScript vs AutoIt
- 10. PHP ne fonctionne pas correctement
- 11. Numéro AutoIT WinWaitActive
- 12. scripts RichFaces/styles ne se charge pas
- 13. 2 scripts jquery ne fonctionnent pas ensemble
- 14. Autoit set console xy position
- 15. fonction $ .ajax() ne fonctionne pas
- 16. .wmv joueur ne fonctionne pas
- 17. MVC2 JQuery Syntaxe ne fonctionne pas
- 18. fastcgi ne fonctionne pas - wrapper déchargé ne fonctionne pas
- 19. Shadowbox ne fonctionne pas dans IE
- 20. enregistrement jquery dynamiquement ne fonctionne pas
- 21. Ma première grille ne fonctionne pas
- 22. JQuery datepicker ne fonctionne pas
- 23. Les scripts AutoIt, exécutés en tant que service, fonctionnent-ils pour les actions de l'interface graphique?
- 24. Asp.Net MVC EnableClientValidation ne fonctionne pas
- 25. L'onglet ne fonctionne pas correctement en Python
- 26. gets() ne fonctionne pas
- 27. ToolStripManager ne fonctionne pas
- 28. ne fonctionne pas?
- 29. $ .get ne fonctionne pas?
- 30. file_get_contents ne fonctionne pas
Vous devez fournir plus de détails ET vous devriez probablement mettre à jour votre question initiale (http://stackoverflow.com/questions/2867689/autoit-scripts-runs-without-error-but-i-cant-see-archive- mise à jour) au lieu de créer un nouveau. – aphoria