Page 1 sur 1
[...] Transformer mon bat (movefiles) en AutoIt
Posté : mer. 01 juil. 2009 09:43
par Laddy
Bonjour à tous
j'ai beau lire la documentation de ce programme depuis des mois, j'ai retenté de m'y replonger il y quelques jours mais je ne saisie toujours pas son fonctionnement. (j'ai même tenté l'installation du pack fr spécial début il ne fonctionne pas - message d'erreur)
Je viens vers vous pour demander votre aide afin de transformer mon bat nommé : movefiles en programme autoit.
Edit :
Movefiles permet de déplacer tous fichiers et dossiers par un glisser déposer sur le .bat ou .exe (converti avec bat2exe converter) en fonction de leur extension vers des répertoires définis dans Mes Documents.
Le seul problème est que pendant le transfère il ouvre la fenêtre dos un instant. (Je n'ai pas trouvé comme la cacher)
Je l'ai testé sous xp pro et home.
Pourriez vous m'aider à le convertir ?
► Afficher le texte
Code : Tout sélectionner
@echo off
:: Line = Hauteur / Cols = Largeur
color 0f & mode con LINES=30 COLS=88
set nom=MoveFiles
set ver=1.1a
title %nom% v.%ver% by Laddy
::remerciements
::Laddy http://www.batchclipboard.info
::Batch_Man http://batchdhelus.open-web.fr
::Modérateurs, formateurs http://batch.xoo.it
set Word=%userprofile%\Mes Documents\Word
set Excel=%userprofile%\Mes Documents\Excel
set PowerPoint=%userprofile%\Mes Documents\Powerpoint
set PDF=%userprofile%\Mes Documents\PDF
set Archives=%userprofile%\Mes Documents\Mes Archives
set vrprogrmes=%userprofile%\Mes Documents\Mes programmes
set Musik=%userprofile%\Mes Documents\Ma musique
set Videos=%userprofile%\Mes Documents\Mes Videos
set Images=%userprofile%\Mes Documents\Mes Images
set Internet=%userprofile%\Mes Documents\Internet
:: ------------- Création des dossiers dans Mes Documents by Batch_Man
if not exist "%Excel%" md "%Excel%"
if not exist "%Word%" md "%Word%"
if not exist "%PowerPoint%" md "%PowerPoint%"
if not exist "%PDF%" md "%PDF%"
if not exist "%Archives%" md "%Archives%"
if not exist "%vrprogrmes%" md "%vrprogrmes%"
if not exist "%Musik%" md "%Musik%"
if not exist "%Videos%" md "%Videos%"
if not exist "%Images%" md "%Images%"
if not exist "%Internet%" md "%Internet%"
FOR /F "TOKENS=2,*" %%I IN ('REG QUERY "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| FIND /I "Personal"') DO SET DOSS=%%J
:encore
if "%~pnx1"=="" goto FIN2
::mouvement pour les documents texte
set WordEXE=.txt .odt .rtf .doc .docm .dotx .dotm .docx .wpd .wps .diz .asc .ascii .hz .latex .lit .log .pages .readme .utf8 .wpd .wps .yml
for %%a in (%WordEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%Word%" 2>nul >nul
::mouvement pour les feuilles de calculs
set ExcelEXE=.xla .xls .xlt .xltm. xltx .xlam .xlsb .xlsm .xlsx .prn .csv
for %%a in (%ExcelEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%Excel%" 2>nul >nul
::mouvement pour les powerpoints
set PPointEXE=.pps .ppt .pptx .pptm .pot .potx .potm .pps .ppsx .ppsm
for %%a in (%PPointEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%PowerPoint%" 2>nul >nul
::mouvement pour les feuilles de pdf
set PDFEXE=.pdf
for %%a in (%PDFEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%PDF%" 2>nul >nul
::mouvement pour les archives
set ArchivesEXE=.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
for %%a in (%ArchivesEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%Archives%" 2>nul >nul
::mouvement pour les programmes
set programEXE=.exe .msi .com .bat .vbs .pif .scr .vb .ws
for %%a in (%programEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%vrprogrmes%" 2>nul >nul
::mouvement pour la musique
set MusikEXE=.mp3 .ogg .wma .mid .wav .aif .aiff .aifc .cda .idf .m3u .voc .aac .au .cdr .m4a .mp1 .mp2
for %%a in (%MusikEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%Musik%" 2>nul >nul
::mouvement pour la video
set VideoEXE=.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 .xvid .yuv
for %%a in (%VideoEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%Videos%" 2>nul >nul
::mouvement pour les images et graphismes
set ImagesEXE=.bmp .jpg .jpeg .gif .png .psd .ico .svg .cgm .dib .swf .tif .wpg .xcf .xbm .dcm .pbm .pgm .xpm .pnm .ppm
for %%a in (%ImagesEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%Images%" 2>nul >nul
::mouvement des fichiers internet
set InternetEXE=.htm .html .css .php .asp .cgi .xml .php3 .url .asp .aspx .dhtml .js .jsp .mhtml .rss .xpi
for %%a in (%InternetEXE%) do if /i "%~x1"=="%%a" move "%~dpnx1" "%Internet%" 2>nul >nul
::movement des dossiers
::variable pour compter
IF NOT EXIST "%DOSS%\%~n1" (
MOVE %1 "%DOSS%"
GOTO FIN)
FOR /F "TOKENS=*" %%A IN ('DIR /B "%DOSS%" ^| FIND "%~n1"') DO (
SET /A COMPT+=1)
REN "%~1" "%~n1_%COMPT%"
MOVE "%~dpn1_%COMPT%" "%DOSS%"
:FIN
SHIFT
GOTO ENCORE
:FIN2
exit
Icone de mon bat :
► Afficher le texte
format ico
format png :

J'espère qu'en autoit il sera compatible vista/seven et que cette fenêtre soit caché.
Merci d'avance ..
Bonne journée
Laddy
Re: transformer mon bat (movefiles) en autoit
Posté : mer. 01 juil. 2009 09:48
par Linox
Bonjour
Donc:
- lister les fichier glisser déposer sur le script
détecter l'extension des fichiers
créer un répertoire dés qu'un nouvelle extension et détecter (le répertoire portera comme non l'extension détectée)
puis déplacer le fichier dans le répertoire portant pour non l'extension
Pour commencer il faut donc que quelqu'un nous dise comment lister les fichier glisser sur le script, un lien ?
Re: transformer mon bat (movefiles) en autoit
Posté : mer. 01 juil. 2009 09:57
par Laddy
Oui c'est à peut près ça..
les dossiers suivants sont créer si il n'existe pas en fonction des extensions détectées lors que je glisse dépose mes fichiers ou dossiers dessus.
Mes Documents\Word
Mes Documents\Excel
Mes Documents\Powerpoint
Mes Documents\PDF
Mes Documents\Mes Archives
Mes Documents\Mes programmes
Mes Documents\Ma musique
Mes Documents\Mes Videos
Mes Documents\Mes Images
Mes Documents\Internet
Lors qu'il s'agit d'un dossier il est simplement déplacer dans le dossier Mes documents et si il existe déjà il est numéroté
dossier_compta
dossier_compta01
dossier_compta02
dossier_compta03
Si une extension inconnue est détecté, créer un dossier avec le nom de cette extension.
ensuite déplacer les fichiers et dossiers détectés vers leurs différents répertoires

Re: transformer mon bat (movefiles) en autoit
Posté : mer. 01 juil. 2009 10:22
par ani
je vais regarder çà
Question, vous déclaré divers variables (word|excel|internet...) en y indiquant un lien,
mais ensuite vous lisez une info dans la base de registre (pour retourner C:\Documents and Settings\USERNAME\Mes documents) il serait plus judicieux de récuperer d'abord l'info de cette partie de ruche et ensuite indiquer le lien du regedit + les dossiers désiré ?
Pour le glisser y a cmdline.
la j'essaie au plus simple sans passer par ms-dos.
Re: transformer mon bat (movefiles) en autoit
Posté : mer. 01 juil. 2009 10:53
par Laddy
Merci Ani de regarder
Je ne pense pas avoir bien saisie ton interrogation
je n'ai jamais fait de code batch pour récupérer le chemin dans la ruche. Je suis toujours passé par %userprofile%\Mes documents\Dossier = C:\Documents and Settings\Nomutilisateur\Mes documents\dossier afin de créer les dossiers sur la session en cours.
D'ailleurs je ne sais pas ou peut se situer C:\Documents and Settings\NomUtilisateur\Mes documents dans la ruche
Je suis toujours passé par les variables d'environnements définis par la commande set.
Les dossiers si ils n'existent pas sont créer par la commande mkdir /md
set archives=%userprofile\Mes documents\Mes archives
md %archives%
ou
md %userprofile\Mes documents\Mes archives
hmm je pense avoir compris à quoi tu fais allusion...
la clé de registre a été défini pour le glisser déposer des dossiers , elle est apparu récemment dans mon code fait par un ami parce que je trouvais pas comment faire pour les dossiers :
► Afficher le textecle de registre
Code : Tout sélectionner
FOR /F "TOKENS=2,*" %%I IN ('REG QUERY "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| FIND /I "Personal"') DO SET DOSS=%%J
::movement des dossiers
::variable pour compter
IF NOT EXIST "%DOSS%\%~n1" (
MOVE %1 "%DOSS%"
GOTO FIN)
FOR /F "TOKENS=*" %%A IN ('DIR /B "%DOSS%" ^| FIND "%~n1"') DO (
SET /A COMPT+=1)
REN "%~1" "%~n1_%COMPT%"
MOVE "%~dpn1_%COMPT%" "%DOSS%"
il est vrai que maintenant je pourrai modifier le tout.
► Afficher le texteNEW VARIABLE
Code : Tout sélectionner
FOR /F "TOKENS=2,*" %%I IN ('REG QUERY "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| FIND /I "Personal"') DO SET DOSS=%%J
set Word=%DOSS%\Word
set Excel=%DOSS%\Excel
set PowerPoint=%DOSS%\Powerpoint
set PDF=%DOSS%\PDF
set Archives=%DOSS%\Mes Archives
set vrprogrmes=%DOSS%\Mes programmes
set Musik=%DOSS%\Ma musique
set Videos=%DOSS%\Mes Videos
set Images=%DOSS%\Mes Images
set Internet=%DOSS%\Internet
Merci pour cette remarque
