[quote=“mmenfin, post:20, topic: 25784”]bon, et la méthode ultra-bourrin-qui-marchera-quand-même ?
(vu comme tu as présenté ton arbo, j’ai l’impression que tes chiffres ne sont pas aléatoires mais se suivent)
donc ce qu’il te faudrait, c’est un gros fichier batch avec chaque ligne du genre :
cd qc-0001
rename qc-0001.pdf drw-0001.pdf (pas sûr de la commande rename, mais au moins un équivalent)
cd..
cd qc-0002
rename qc-0002.pdf drw-0002.pdf
cd..
...
bah moi je tenterais de faire des jolies colonnes sur excel qui s’incrémentent toutes seules (pour les répertoires et fichiers -xxxx, et de générer un fichier texte qui correspond (via des commandes excel du type concatener pour créer des lignes complètes à partir des différentes cellules de données).
et tu lances ce gros batch.
ça bourine.
mais ça doit marcher.[/quote]
Mais non !
C’est moi les solutions bourrins.
N’empéche que la tienne me semble bien.
Mais je refuse de lnui attriber le statut de bourrin, utiliser excel et un batch c’est subtil.
[quote=« Lukkant, post:21, topic: 25784 »]Mais non !
C’est moi les solutions bourrins.
N’empéche que la tienne me semble bien.
Mais je refuse de lnui attriber le statut de bourrin, utiliser excel et un batch c’est subtil.[/quote]
« subtil »
bon, comme je trouve ça rigolo, j’ai fais un test. après 10mn de bidouilles sur excel, j’obtiens ça : rename_en_masse.xls. comme je n’ai pas trouvé de méthode simple pour retrouver 3 lignes distinctes à partir d’une seule, j’ai mis des « $$ » pour les remplacer par des return sur word. et ça donne donc ça : rename_en_masse.txt.
y’a les 10000 premiers répertoires. suffit de le renommer en .cmd et de le lancer.
donc ça doit pouvoir marcher chez toi.
edit : ah tiens j’ai oublié le sous-rep « drawings ». mais bon, sur le principe, c’est pareil.
il existe une methode simple fiable et efficace : le Script !!!
Et comme je suis un gars sympa, le voila
[code] option explicit
Dim fso, racine, reps_rac, rep_niv1, reps_niv1
Dim rep_niv2_drawings ,rep_niv2_drawings_files
Dim Drawings_File, index
Set fso = CreateObject(“Scripting.FileSystemObject”)
Set racine = fso.GetFolder(".")
Set reps_rac = racine.SubFolders
For Each rep_niv1 in reps_rac
’Wscript.echo rep_niv1.name
set reps_niv1=rep_niv1.SubFolders
set rep_niv2_drawings=reps_niv1.item(“DRAWINGS”)
'Wscript.echo rep_niv2_drawings.path
set rep_niv2_drawings_files=rep_niv2_drawings.files
For Each Drawings_File in rep_niv2_drawings_files
’Wscript.echo Drawings_File.name
’Ligne dangereuse ci dessous
if a_renommer (Drawings_File.name,index) then Drawings_File.move (rep_niv2_drawings.path & “\DRW-” & index & “.PDF”)
'Ligne dangereuse ci dessus
Next
Next
Function a_renommer (Byval nom_fichier, Byref index)
Dim oRe, oMatch, oMatches
a_renommer=False
Set oRe = New RegExp
oRe.Pattern = "qc-(\d{4}).pdf"
oRe.IgnoreCase =True
Set oMatches = oRe.Execute(nom_fichier)
for Each oMatch in oMatches
a_renommer=True
index = oMatch.SubMatches(0)
next
end Function[/code]
pour une version plus ‘controlée’ remplacer la ligne
par
qui génère un fichier de commande batch (faire une redirection dans un fichier
comment executer ?
ligne de commande, se placer dans le dossier racine de l’arbo et faire cscript nom_du_script.vbs"
Je conseille de tester d’abord en invalidant la seule ligne dangereuse (et en la remplaçant par la ligne SAFE)
Bah oui, contrairement à une idée reçue le langage de scripting de Windows est très puissant.
C’est le problème de beaucoup d’écoles, résultat on a des linux zealots et des blaireaux (qui ne connaissent que le GUI) sous win
Donc, j’ai fait une école où j’ai appris à scripter sous unix comme tout le monde et comme je me suis retrouvé dans un enviro MS, j’ai adapté mes connaissances.
Le VBscript faut pas être un génie pour l’apprendre, mais on peut faire du javascript aussi par défaut, ou du perl ou plein d’autres truc, mais il faut l’installer.
Les 2 trucs lourds avec WSH ce sont : l’accèes au registre et les expression régulières (cf mon script)
et puis la gestion des erreurs aussi. D’ailleurs dans mon script c’est pas géré, il y a deux sources possibles lignes 11 (si pas de rep Drawings–>erreur, le script s’arrete) et 17 (si un fichier drw-xxxx.pdf existe, erreur).
PS, j’ai pas commenté mon script parce que je considère qu’il se lit en langage presque naturel
Après pour aller plus loin il faut passer au .net, ça se fait bien aussi sauf que j’ai pas encore compris comment executer directement un source (que la compil se fasse toute seule comme pour les aspx)