Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Batch rangement automatique
Auteur Message
Répondre en citant
Message Batch rangement automatique 
Bonjour,

J'essaye depuis un moment de creer un batch sans reel succe ...
Je vous explique :
Je voudrais creer un batch qui range mes telechargements suivant leur type a des endroits differents.

Exemple

Si ce fichier est un *.txt alors range le dans Documents
Si ce fichier est un *.avi alors range le dans Videos

etc etc

MAIS, wé toujours un mais ...

Le problème c'est que, étant des télechargement, ils peuvent etre eux memes dans un dossier qui leur est propre

Exemple si dans telechargements j'ai recu 2 images et 1 musique mais que la musique est arrivé dans un dossier genre :

Telechargements\Bob\musique.mp4

Il faudrait donc que je réussisse a dire a mon batch d'aller voir le format du fichier dans un dossier dont il ne connait pas le nom ... si vous voyez s'que je veux dire ^^

en gros je voulais faire ceci mais le code est érronné mais juste pour vous aider a comprendre

@echo off
Move "telechargements\*.avi" "Videos\"
Move "telechargements\*.txt" "Documents\"
Move "telechargements\*\*.iso "ISO\" (sachant que le "\*\" représente le dossier au nom inconnue)

Je me suis donc dit que je devais faire de la maniere suivante :

dir "telechargements\" >> liste.txt (affin d'obtenir le nom de ces dossiers inconnue)

Et la je bloque, il faut que j'arrive a rappeler chaque nom, donc chaque ligne, dans une commande afin de pouvoir les traiter

Genre :
If "telechargements\"nom de la ligne 1"\" equ *.avi do move "telechargements\"nom de la ligne 1"" "Videos\"
(pour deplacer son dossier avec ses fichier)
If "telechargements\"nom de la ligne 2"\" equ *.txt do move "telechargements\"nom de la ligne 2"\*.txt" "Documents\"
(idem mais pour les .txt)

Mais j'ai beau chercher je ne trouve rien qui va vraiment dans ce sens.

Si jamais vous pouvais et voulais me venir en aide, je vous remercie bien d'avance.

help ...



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Batch rangement automatique 
Tien ceci pourra t'aider , c'est un vieux script de laddy je croit pour trier les fichier selon les extension :

Code:

::Faire glisser le fichier sur le "trieur.bat" pour être déplacer a l'endroit définie
 echo off
color 0f & mode con LINES=30 COLS=88
set nom=MoveFiles
set ver=1.1a
title %nom%  v.%ver%  by Laddy :: ah oui c'est bien Laddy =p


set Musik=C:\Users\Music\son
set Videos=C:\Users\Videos\film
set Images=C:\Users\Pictures
set Programme=C:\Users\Desktop\Coffre

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 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%"

::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%"

::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%"


::mouvement pour les programmes
set ProgrammeEXE=.bat .exe .au3 .vbs .html
for %%a in (%ProgrammeEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Programme%"





::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






______________________________________________________
Expert Réseau & Anonymat !
" Les shell codes ??..c'est juste des boite a outils ! "


Visiter le site web du posteur
Répondre en citant
Message Batch rangement automatique 
Bonjour
exactement, il permet de glisser les fichiers sur le batch et çA les rangent dans des dossiers.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message Batch rangement automatique 
Merci pour vos réponse, très sincérement ca change de certains forum qui vous raconte des c@!%<^$ (nan c'est pas une ligne de commande).

Par contre je voulais être bien sure, car je ne pige pas tout ce code ^^, il vérifie également dans les dossiers ?

Car quand on recoit un telechargement il arrive que celui ci également dans un dossier et comme le batch ne connait pas le nom de ce dossier en question, va t'il réussir a trouver son nom et regarder dedans ?

Et surtout si il vérifie dans ce ou ces dossiers en question, quand il déplace, il déplace bien que le dossier qu'il vient de trouver et analysé ou bien il prend tout sans faire de detail ?

Merci encore de vous donner la peine Wink Razz



Répondre en citant
Message Batch rangement automatique 
Bonjour
j ai pas trop compris ta question sur les dossiers mais si tu déplaces un dossier nommé Batch par exemple et que ce dossier existe dans déjà il sera déplacé mais renommé en Batch01 ou Batch1
si batch, batch1 exsitent déja il sera renommé par batch3 etc...
Le code fonctionne par glisser déposer donc tu dois glisser les fichiers et dossiers sur le batch pour les ranger et non cliquer dessus.
Si tu as des fichiers à l interieur des dossiers que tu veux ranger il faut les ouvrir et glisser déposer le fichier en question.


Ensuite faut adapter à tes besoins le code cité plus haut ainsi qu'à ton systeme dexploitation

Si tu veux qui trie dans les dossiers il faut ajouter des opérations supplémentaires et retirer la gestion des dossiers

Code:
::mouvement 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%"





______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message Batch rangement automatique 
Non non
Ce n'est pas un probleme de dossier deja existant, je sais que mes explications sont tordus, meme moi je m'y perds ^^

Je vais essayer d'etre plus precis.

J'ai deja réussi a faire que chaque fichier telechargé soit déplacé a un endroit selon son extention.
Mais mon problème est que si le fichier telechargé arrive avec son propre dossier alors il n'y touche pas car pour lui il voit un dossier et pas un fichier

Explication:

Si je telecharge un fichier robert.mp4 (wé robert c'est un bon ^^) et que je recoit dans mon dossier "telechargements\robert.mp4" alors c'est nickel, MAIS si "robert.mp4" arrive dans son propre dossier en tant que "Album Robert\Robert.mp4" là mon batch voit juste "Album Robert" et pas ce qu'il y a dedans car comme il regarde ce qu'il y a dans telechargements\ et que la ca donne telechargements\Album Robert\Robert.mp4 là le batch ne fait rien.

Alors il faut que je réussisse a lui dire d'aller voir DANS le dossier "Album Robert" sauf que le souci c'est que je vais pas rajouter une ligne dans le batch a chaque dossier avec un nom spécifique a ce que je viens de telecharger, alors il faut que le batch réussisse lui même a trouver le nom du dossier (ici Album Robert).

Ma seul solution etait :

dir /B Telechargement\ >> liste.txt (ainsi dans le fichier Liste.txt il va me repertorier les dossiers)

Puis je voulais faire une variable (mais chui un naze en variable) pour qu'il fasse :

set NomDossier = (là je sait deja pas comment faire pour ne pas lui donner de valeur)

Ensuite il faut que j'arrive a lui faire lire la 1er ligne de liste.txt et je l'aurais donné en valeur a %NomDossier% puis de lui dire, pour faire

IF "Telechargements\%NomDossier\"*equ *.mp4 Move "Telechargements\%NomDossier%" "Musique" (wé c tordu mais on voit s'que j'essaye de faire ... j'espere)

Ensuite qu'il change la valeur de %NomDossier% par la 2eme ligne de Liste.txt ainsi il fera de meme pour le dossier suivant etc etc

Ainsi là il doit comprendre :

-Je créé la variable %NomDossier%
-Je donne comme valeur a %NomDossier% la 1ere ligne de liste.txt (donc le 1ere dossier trouvé) donc dans cette exemple Album Robert (wé encore Robert)
-Si Album Robert contient du MP4, alors je le déplace dans Musique
-Je donne comme valeur a %NomDossier% la 2eme ligne de liste.txt (Donc le 2eme dossier trouvé)
-Si Film-de-bob contient du AVI, alors je le déplace dans Films
Ce fameux %NomDossier% premetrait donc de trouver le nom du dossier de ce que je viens de telecharger, de regarder son contenu et de le déplacer là ou il doit se trouver

Bon j'pense avoir bien réussi a expliqué là ... enfin pour mon esprit tordu c'est clair ^^
"Sivouplé" éssayé de résonner de maniere "tordu" pour me comprendre ^^

Merci a vous et bon courrage pour comprendre Wink



Répondre en citant
Message Batch rangement automatique 
En gros si a la fin du telechargement ca donne

[Telechargement]
||
Robert.MP4

avec la commande :

Move "Telechargement\*.mp4" "Musique"

ca donnera

[Telechargement]
||
Vide


[Musique]
||
Robert.mp4


Mais si a la fin du telechargement ca donne :

[Telechargement]
||
[Album Robert]
||
Robert.mp4


[Musique]
||
Vide

Bein mon batch ne fera rien car il n'ira pas voir dans [Album Robert]

Donc je Voulais faire :

Dir /B "Telechargement\" >> "Liste.txt"

Ainsi dans liste.txt il récupere les noms de dossiers

puis je veux qu'il lise la 1ere ligne de liste.txt (donc le 1er dossier de la liste) et la mettre en valeur a une variable.
Pour ensuite faire :

Move "Telechargement\"Variable\*.mp4" "Musique"

Ensuite il donne la 2eme ligne comme valeur a la meme variable a la place de la 1er ligne (donc le 2eme dossier trouvé)
et refaire :

Move "Telechargement\"Variable\*.mp4" "Musique"

avec un ptit +1 a la valeur trouvé pour qu'il regarde la 1ere ligne puis +1, il regarde la 2eme, etc etc.

Ainsi il vérifiera tout les dossiers de la liste ^^

Hé là sérieux, top mon explication nan ? ... Nan mais vraiment quoi nan ? nan ? a ok nan ... bon .... Crying or Very sad



Répondre en citant
Message Batch rangement automatique 
Bonsoir
faut maitriser les boucles pour déplacer les fichiers dans les dossiers ou tu veux.

Dans la theorie
CODE testé - WIN 7 64 bit
Code:
@echo off

REM EXTRACTION DU CHEMIN DU DOSSIER Ma musique VIA LE REGISTRE
FOR /F "TOKENS=3,*" %%I IN ('REG QUERY "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| FIND /I "My Music"') DO SET MUSIC=%%J

REM A VERIFIER - EXTRATION DU CHEMIN DU DOSSIER TELECHARGEMENT VIA LE REGISTRE
FOR /F "TOKENS=2,*" %%I IN ('REG QUERY "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| FIND /I "{374DE290-123F-4565-9164-39C4925E467B}"') DO SET DOWNLOAD=%%J


REM DECLARATION DES EXTENSIONS POUR LA MUSIQUE
set MusikEXE=.mp3 .ogg .wma .mid .wav .aif .aiff .aifc .cda .idf .m3u .voc .aac .au .cdr .m4a .mp1 .mp2

REM BOUCLE POUR DEPLACER LES FICHIERS CONTENUS DANS SOUS DOSSIERS CONTENU DANS LE DOSSIER TELECHARGEMENT VERS LE DOSSIER MA MUSIQUE
for %%a in (%MusikEXE%) do (
for /f "tokens=*" %%i IN ('dir "%DOWNLOAD%" /b  /AD') DO (
move "%DOWNLOAD%\%%i\*%%a" "%MUSIC%" 2>NUL
)
)
PAUSE




Dernière édition par Laddy le Sam 17 Nov 2012 - 09:55; édité 3 fois

______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message Batch rangement automatique 
Arg, je vais faire un tour sur le net pour bien comprendre tout le code afin de savoir si j'me suis fait comprendre ^^

En tout cas MERCI encore de vous donner la peine de m'aider Wink



Répondre en citant
Message Batch rangement automatique 
le code fonctionnel permet de faire ce que tu veux c est à dire deplacer des fichiers contenus dans des sous dossiers du dossier principal téléchargements en fonction de son extension.

ici le code s applique à la musique, le code est commenté.

Je ne me suis pas basée sur un fichier intermediaire list.txt qui ne me sert pas ici
il sert de base pour les autres extensions pour les sous dossiers.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message Batch rangement automatique 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch