[BATCH] Boucle selon nom de fichier SRC ET nom de dossier DST
Résolu/Fermé
Informadream
Messages postés
465
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
9 mars 2022
-
Modifié par Informadream le 17/11/2016 à 16:16
Informadream Messages postés 465 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 9 mars 2022 - 18 nov. 2016 à 14:13
Informadream Messages postés 465 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 9 mars 2022 - 18 nov. 2016 à 14:13
A voir également:
- [BATCH] Boucle selon nom de fichier SRC ET nom de dossier DST
- Fichier rar - Guide
- Fichier batch - Guide
- Dossier appdata - Guide
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
4 réponses
dubcek
Messages postés
18764
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 février 2025
5 624
18 nov. 2016 à 11:26
18 nov. 2016 à 11:26
hello
on extrait les 6 premiers car. du nom, ce qui donne la destination
enlever le echo si c'est ok
on extrait les 6 premiers car. du nom, ce qui donne la destination
enlever le echo si c'est ok
@echo off
setlocal enabledelayedexpansion
set dir=C:\Users\xxx\Downloads\DST\
for %%a in (*.pdf) do (
set dest=%%a
set dest=!dest:~0,6!
echo move "%%a" "%dir%!dest!"
)
dubcek
Messages postés
18764
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 février 2025
5 624
18 nov. 2016 à 12:13
18 nov. 2016 à 12:13
prendre les 3 premiers chiffres et ajouter 000
set dest=!dest:~0,3!000
Informadream
Messages postés
465
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
9 mars 2022
39
18 nov. 2016 à 14:13
18 nov. 2016 à 14:13
Yes !!!
Merci mille fois pour ton aide, tout marche impeccable !
Bon weekend :)
Merci mille fois pour ton aide, tout marche impeccable !
Bon weekend :)
Informadream
Messages postés
465
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
9 mars 2022
39
17 nov. 2016 à 18:20
17 nov. 2016 à 18:20
J'ai essayé d'avancer un peu tout seul, ma "boucle" donnerait ça :
cd C:\Users\xxx\Downloads\SRC
for %%X in (1,1,300) do
for %%i in ("*%X%*.pdf") do move "*%X%*.pdf" "C:\Users\xxx\Downloads\DST\*%X%*"
Malheureusement ça ne marche pas du tout, même pas un message d'erreur, la fenêtre s'ouvre et se ferme...
cd C:\Users\xxx\Downloads\SRC
for %%X in (1,1,300) do
for %%i in ("*%X%*.pdf") do move "*%X%*.pdf" "C:\Users\xxx\Downloads\DST\*%X%*"
Malheureusement ça ne marche pas du tout, même pas un message d'erreur, la fenêtre s'ouvre et se ferme...
Informadream
Messages postés
465
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
9 mars 2022
39
18 nov. 2016 à 11:46
18 nov. 2016 à 11:46
Merci beaucoup pour ta réponse, ça avance :)
Problème, le répertoire de DST ne porte pas exactement le nom du fichier, par exemple :
Fichiers :
- 001047 00029 ABC.pdf
- 002404 00093 ABC.pdf
- 003292 00125 ABC.pdf
- 004907 00197 ABC.pdf
- 188001 09619 ABC.pdf
(la mention "ABC" du nom du fichier est toujours présente)
Dossiers :
- 001000
- 002000
- 003000
- 004000
- 188000
--> Selon le nombre dans la première partie du nom du fichier (ex. 001047 pour le premier), on le classe dans le dossier correspondant, en raisonnant par "milliers".
Du coup, il faudrait que la boucle parcoure les fichiers, détermine à quel "milliers" appartiennent les 6 premiers chiffres, et le classe dans le dossier correspondant.
Si je ne suis pas clair n'hésite pas.
Problème, le répertoire de DST ne porte pas exactement le nom du fichier, par exemple :
Fichiers :
- 001047 00029 ABC.pdf
- 002404 00093 ABC.pdf
- 003292 00125 ABC.pdf
- 004907 00197 ABC.pdf
- 188001 09619 ABC.pdf
(la mention "ABC" du nom du fichier est toujours présente)
Dossiers :
- 001000
- 002000
- 003000
- 004000
- 188000
--> Selon le nombre dans la première partie du nom du fichier (ex. 001047 pour le premier), on le classe dans le dossier correspondant, en raisonnant par "milliers".
Du coup, il faudrait que la boucle parcoure les fichiers, détermine à quel "milliers" appartiennent les 6 premiers chiffres, et le classe dans le dossier correspondant.
Si je ne suis pas clair n'hésite pas.
Informadream
Messages postés
465
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
9 mars 2022
39
18 nov. 2016 à 11:52
18 nov. 2016 à 11:52
Précison, le répertoire "DST" contient donc les dossiers "001000", et "002000" etc.
En l'état le batch ne les mets pas dans les sous-répertoires, mais à la racine du répertoire DST.
Le pire, c'est qu'il les convertit (le PDF porte juste le nom "001"), et enlève le format du fichier :)
En l'état le batch ne les mets pas dans les sous-répertoires, mais à la racine du répertoire DST.
Le pire, c'est qu'il les convertit (le PDF porte juste le nom "001"), et enlève le format du fichier :)
Informadream
Messages postés
465
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
9 mars 2022
39
18 nov. 2016 à 11:55
18 nov. 2016 à 11:55
N.B j'ai modifié pour extraire seulement les 3 premiers caractères, ce sont eux qui sont significatifs pour le classement dans les dossiers, puisqu'on raisonne par "milliers".
Informadream
Messages postés
465
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
9 mars 2022
39
18 nov. 2016 à 12:00
18 nov. 2016 à 12:00
Décidément...
En gros si je résume, il faudrait ajouter à cette commande :
move "%%a" "%dir%!dest!"
Un caractère joker ("*" ?) pour lui dire que le répertoire de destination commence effectivement par les 3 premiers chiffres du nom du fichiers, mais se termine différemment
En gros si je résume, il faudrait ajouter à cette commande :
move "%%a" "%dir%!dest!"
Un caractère joker ("*" ?) pour lui dire que le répertoire de destination commence effectivement par les 3 premiers chiffres du nom du fichiers, mais se termine différemment