Bonjour à tous,
J’ai un petit problème de batch : j’aimerais que tous les fichiers d’un dossier soient répartis en fonction de leur nom. Tous les fichiers ont un nom sur un même modèle : 00-AB-ACTION. Les deux premiers chiffres correspondent à l’identifiant du dossier, les deux lettres, au nom du propriétaire et la dernière partie, c’est le type de dossier.
L’arborescence du dossier d’archive est la suivante : identifiant-[deux lettres qui peuvent changer] \ propriétaire \ type de dossier.
Comme je ne suis pas sûr d’être clair dans mes explications, un exemple :
Il faudrait que le fichier "018-LOUIS-Voiture bleue.pdf" aille se ranger dans le sous-dossier : 000-099\018-WV\018-LOUIS\ACHAT (sachant que mon dossier 018-WV contient un sous dossier 018-LOUIS, 018-AGATHE, 018-TRUNKS, et que chacun contient un sous-dossier ACHAT, VENTE, LOCATION, etc.), et ce, pour chaque fichier de mon dossier « Courrier entrant ».
J’ai réussi à faire un batch pour ouvrir un dossier en particulier avec ce code :
Ca me fait déjà gagner pas mal de temps, mais pour passer à l’étape supérieure, j’avoue que je suis un peu paumé ! Intuitivement, il me semble qu’il y a quelque chose à chercher du côté des boucles, mais j’ai du mal à y parvenir. Quelque chose comme « pour chaque fichier, voir de quel type il s’agit [il n’y en a pas énormément de possibles], aller dans le sous-dossier de l’identifiant, puis du propriétaire, et le déplacer dans le sous-dossier correspondant »… sauf que j’ai beaucoup de mal à transposer ça en code (et peut-être que je fais juste fausse route et que vous avez de meilleures idées). Juste pour voir si j’arrivais à extraire la valeur de l’identifiant, j’ai tenté un début avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 set /p "a= Quel dossier ouvrir ?" for /d %%a in ( "\\DossierReseau\%a:~0,1%00-%a:~0,1%99\%a%-*" ) do set "fichierArchive=%%~fa" explorer %fichierArchive% GOTO eof
Mais déjà rien que là, je bloque :’(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @echo off for %%z in (*.pdf) do ( echo %%z set i=%z:~0,2% echo %i% ) pause GOTO eof
Si une âme charitable passe par là, je lui serai éternellement reconnaissant ! Toute piste sera la bienvenue !
Partager