Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\Nconvert\Travaux\Moveiles\moveFiles_256.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs
Auteur : Laddy (cheffe de projet)
Co-Dev : Sablier94 - travail sur la Gui
Site : http://batchclipboard.olympe-network.com/
Titre : MoveFile
Version : 1.0
Movefiles permet par un glisser déposer sur l'exécutable d'envoyer les fichiers dans les répertoires définis dans Mes Documents.
Compile le script en exécutable et glisser, déposer des fichiers et dossiers pour les classer.
Transcript batch2au3 de MoveFiles.exe créé par Laddy en 2009.
Merci ZeShrek pour son aide et autoit forum fr
Espace de travail (privé): http://laddy.titanpad.com/3
TODOLIST
- Stocker les extensions dans un fichier ini. [Ok]
- Gérer l'existence du fichier ayant le même nom
- Ajouter le déplacement des dossiers, si un dossier existe le renommer en Nom[0], Nom[1] etc...
- GUI - Ajouter des extensions.
#Region ##Travail sur la Gui
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ###
$Configuration = GUICreate("Configuration MoveFiles", 634, 342, 193, 125)
$Options = GUICtrlCreateGroup("Options", 8, 16, 609, 73)
$Copy = GUICtrlCreateRadio("Copier / Coller les fichiers", 48, 48, 169, 17)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Move = GUICtrlCreateRadio("Déplacer les fichiers", 256, 48, 177, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$GFolders = GUICtrlCreateGroup("Gestion des dossiers", 8, 96, 609, 81)
$GererDossiersTXT = GUICtrlCreateLabel("Gérer les dossiers par défaut :", 24, 130, 183, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Gerer = GUICtrlCreateButton("Gérer", 216, 128, 81, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Gext = GUICtrlCreateGroup("Gestions des extensions", 8, 200, 609, 89)
$AjouterTXT = GUICtrlCreateLabel("Ajouter une nouvelle extension :", 32, 232, 191, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Extension = GUICtrlCreateInput(".Extension", 240, 232, 89, 21)
$Ajouter = GUICtrlCreateButton("Ajouter", 360, 232, 73, 25, 0)
$Supprimer = GUICtrlCreateButton("Supprimer", 451, 232, 81, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$config = GUICtrlCreateButton("Configurer", 424, 304, 75, 25, $WS_GROUP)
$Quit = GUICtrlCreateButton("Fermer", 512, 304, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Ajouter
AjouterExtension()
Case $supprimer
Supprimer()
Case $Gerer
Gerer()
Case $Quit
Exit
EndSwitch
WEnd
Func AjouterExtension()
#Region ### START Koda GUI section ###
$Form2 = GUICreate("MoveFiles : Ajouter une extension", 489, 175, 303, 219)
$DansQuelDossier = GUICtrlCreateLabel("Dans quel dossier déplacer les fichiers de l'extension ajoutée : [nom de l'extension]", 16, 16, 442, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$dossier = GUICtrlCreateInput("Nom du dossier", 24, 56, 121, 21)
$Valider = GUICtrlCreateButton("Valider", 24, 104, 89, 25, 0)
$Annuler = GUICtrlCreateButton("Annuler", 128, 104, 89, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Valider
ExitLoop() ;on sort de la boucle pour ajouter l'extension
Case $Annuler
GUIDelete() ;On efface toutes les fenêtres
ShellExecute(@ScriptFullPath) ;On rouvre le programme
Exit ;on ferme le programme
EndSwitch
WEnd
;ici, on doit mettre le code pour ajouter l'extension
EndFunc
Func Gerer()
MsgBox(0,"MoveFile","Pas disponible pour le moment")
EndFunc
Func Supprimer()
MsgBox(0,"MoveFile","Pas disponible pour le moment")
EndFunc
#ce
If Not FileExists(@ScriptDir &"\MoveFile.ini") Then
#Region ##Liste variables des extensions
Global $Exe = ".exe.msi.com.bat.vbs.pif.scr.vb.ws."
Global $TXT = ".txt.ini."
Global $DOC = ".doc.docx.odt.rtf.doc.docm.dotx.dotm.docx.wpd.wps.diz.asc.ascii.hz.latex.lit.log.pages.readme.utf8.wpd.wps.yml."
Global $Tab = ".xls.xlsx.xla.xls.xlt.xltm.xltx.xlam.xlsb.xlsm.xlsx.prn.csv."
Global $PPoint = ".pps.ppt.pptx.pptm.pot.potx.potm.pps.ppsx.ppsm."
Global $PDFs = ".pdf."
Global $ZIK = ".mp3.ogg.wma.mid.wav.aif.aiff.aifc.cda.idf.m3u.voc.aac.au.cdr.m4a.mp1.mp2"
Global $Vid = ".mpg.avi.wmv.asf.divx.mkv.mov.mp4.divx.3gp.dpg.evo.fli.flc.flv.ivr.m2v.m4v.mod.movie.mpe.qt.rm .vob.vro."
Global $Net = ".htm.html.css.php.asp.cgi.xml.php3.url.asp.aspx.dhtml.js.jsp.mhtml.rss.xpi."
Global $Autoit = ".au3."
Global $Autohotkey = ".ahk."
Global $SFX = ".zip.rar.7z.CAB.ARJ.LZH.TAR.GZ.BZ2.ACE.UUE.JAR.Z.gz.tgz.000.arc.cbr.ear.efw.lha.mpkg.sea.sfx.uha.yz.z01.zix.zoo.zz."
# EndRegion ## Fin des variables
#Region ## Création fichier INI
IniWrite(@ScriptDir &"\MoveFile.ini","Programmes", "Valeur", $Exe)
IniWrite(@ScriptDir &"\MoveFile.ini","Texte", "Valeur", $TXT)
IniWrite(@ScriptDir &"\MoveFile.ini","Documents", "Valeur", $DOC)
IniWrite(@ScriptDir &"\MoveFile.ini","Tableur", "Valeur", $Tab)
IniWrite(@ScriptDir &"\MoveFile.ini","PowerPoint", "Valeur", $PPoint)
IniWrite(@ScriptDir &"\MoveFile.ini","PDF", "Valeur", $PDFs)
IniWrite(@ScriptDir &"\MoveFile.ini","Music", "Valeur", $ZIK)
IniWrite(@ScriptDir &"\MoveFile.ini","Videos", "Valeur", $Vid)
IniWrite(@ScriptDir &"\MoveFile.ini","Internet", "Valeur", $Net)
IniWrite(@ScriptDir &"\MoveFile.ini","AutoitScript", "Valeur", $Autoit)
IniWrite(@ScriptDir &"\MoveFile.ini","AutohotkeyScript", "Valeur", $Autohotkey)
IniWrite(@ScriptDir &"\MoveFile.ini","Archives", "Valeur", $SFX)
EndIf
# EndRegion
#Region ### Création des Dossiers
If Not FileExists(@MyDocumentsDir & "\TXT") Then
DirCreate(@MyDocumentsDir & "\TXT")
EndIf
If Not FileExists(@MyDocumentsDir & "\Word") Then
DirCreate(@MyDocumentsDir & "\Word")
EndIf
If Not FileExists(@MyDocumentsDir & "\Powerpoint") Then
DirCreate(@MyDocumentsDir & "\Powerpoint")
EndIf
If Not FileExists(@MyDocumentsDir & "\Excel") Then
DirCreate(@MyDocumentsDir & "\Excel")
EndIf
If Not FileExists(@MyDocumentsDir & "\Ma Musique") Then
DirCreate(@MyDocumentsDir & "\Ma Musique")
EndIf
If Not FileExists(@MyDocumentsDir & "\Mes Archives") Then
DirCreate(@MyDocumentsDir & "\Mes Archives")
EndIf
If Not FileExists(@MyDocumentsDir & "\Mes scripts AU3") Then
DirCreate(@MyDocumentsDir & "\Mes scripts AU3")
EndIf
If Not FileExists(@MyDocumentsDir & "\Mes scripts AUTOHOTKEY") Then
DirCreate(@MyDocumentsDir & "\Mes scripts AUTOHOTKEY")
EndIf
If Not FileExists(@MyDocumentsDir & "\Mes Images") Then
DirCreate(@MyDocumentsDir & "\Mes Images")
EndIf
If Not FileExists(@MyDocumentsDir & "\Mes Videos") Then
DirCreate(@MyDocumentsDir & "\Mes Videos")
EndIf
If Not FileExists(@MyDocumentsDir & "\Internet") Then
DirCreate(@MyDocumentsDir & "\Internet")
EndIf
If Not FileExists(@MyDocumentsDir & "\Programmes") Then
DirCreate(@MyDocumentsDir & "\Programes")
EndIf
If Not FileExists(@MyDocumentsDir & "\PDF") Then
DirCreate(@MyDocumentsDir & "\PDF")
EndIf
# EndRegion ## Fin de création des dossiers
#Region ##Lecture du fichier ini
Global $Executables = IniRead(@ScriptDir &"\MoveFile.ini","Programmes", "Valeur", "NotFound")
Global $Textes = IniRead(@ScriptDir &"\MoveFile.ini","Texte", "Valeur", "NotFound")
Global $Documents = IniRead(@ScriptDir &"\MoveFile.ini","Documents", "Valeur", "NotFound")
Global $Tableurs = IniRead(@ScriptDir &"\MoveFile.ini","Tableur", "Valeur", "NotFound")
Global $Visionneuse = IniRead(@ScriptDir &"\MoveFile.ini","PowerPoint", "Valeur", "NotFound")
Global $Adobe = IniRead(@ScriptDir &"\MoveFile.ini","PDF", "Valeur", "NotFound")
Global $Musik = IniRead(@ScriptDir &"\MoveFile.ini","Music", "Valeur", "NotFound")
Global $Vd = IniRead(@ScriptDir &"\MoveFile.ini","Videos", "Valeur", "NotFound")
Global $Internet = IniRead(@ScriptDir &"\MoveFile.ini","Internet", "Valeur", "NotFound")
Global $AutoItSC = IniRead(@ScriptDir &"\MoveFile.ini","AutoitScript", "Valeur", "NotFound")
Global $AutohotkeySC = IniRead(@ScriptDir &"\MoveFile.ini","AutohotkeyScript", "Valeur", "NotFound")
Global $SFXs = IniRead(@ScriptDir &"\MoveFile.ini","Archives", "Valeur", "NotFound")
# EndRegion
If $CmdLine[0] Then
For $i = 1 To $CmdLine[0]
$ext=StringSplit($CmdLine[$i],".") ; on utilise la fonction stringsplit pour découper les noms de fichier au niveau des points
$extension = "." & $ext[$ext[0]] & "." ; on prend le dernier élément, au cas ou le fichier ait plusieurs points dans son nom, et on l'encadre de points, poir etre sur qu'on trouvera la meme expression dans la 'banque'
Select
case StringInStr($Textes,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\TXT", 0)
case StringInStr($Documents,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Word", 0) ; par exemple si tu as fait un répertoire pour tes documents Word
case StringInStr($Tableurs,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Excel", 0) ; par exemple si tu as fait un répertoire pour tes documents Excel
case StringInStr($Visionneuse,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\PowerPoint", 0)
case StringInStr($Adobe,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\PDF", 0)
case StringInStr($Musik,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Ma Musique", 0)
case StringInStr($Vd,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Mes Videos", 0)
case StringInStr($Internet,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Internet", 0)
case StringInStr($Executables,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Programmes", 0)
case StringInStr($AutoItSC,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Mes scripts AU3", 0)
case StringInStr($AutohotkeySC,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Mes scripts AUTOHOTKEY", 0)
case StringInStr($SFXs,$extension)<>0
FileMove($CmdLine[$i], @MyDocumentsDir & "\Mes Archives", 0)
EndSelect
Next
Else
MsgBox(16, "Information", "Aucun paramètre n'a été transmis.")
EndIf
Exit