Aide et conseils concernant AutoIt et ses outils.
Boulanza
Niveau 9
Messages : 697 Enregistré le : mer. 31 juil. 2013 15:49
Status :
Hors ligne
#1
Message
par Boulanza » sam. 09 sept. 2017 03:49
Je cherche à coder sous AutoIt (RunWait) la commande dos "Ren" qui permet de renommer un dossier.
Sous dos :
C:\Program Files>Ren MonDossie NewDossier ==> ça marche.
J’ai trouvé un exemple de code sous AutoIt mais ça ne marche pas. Pouvez-vous m’aider. Merci d’avance.
Code : Tout sélectionner
$avant = "MonDossie"
$apres = "NewDossier"
$dossier = @ProgramFilesDir ; dossier contenant "aaa.txt" (chemin complet)
_Rename($avant, $apres, $dossier)
Func _Rename($oldname, $newname, $folder)
RunWait(@ComSpec & ' /C Ren "' & $avant & '" "' & $apres & '"', "", @SW_HIDE)
EndFunc
Modifié en dernier par
Boulanza le dim. 10 sept. 2017 00:51, modifié 1 fois.
mimione
Niveau 4
Messages : 91 Enregistré le : mer. 30 avr. 2008 18:11
Localisation : Bretagne
Status :
Hors ligne
#2
Message
par mimione » sam. 09 sept. 2017 08:56
Bonjour
Pourquoi ne pas utiliser la fonction AutoIt "DirMove()" ??
(Because AutoIt lacks a "DirRename" function, use DirMove() to rename a folder!)
ça ne répond pas strictement à la question, mais ça fait le job!
Je ne suis pas toujours de mon avis....
--------------------------------------------
Des malheurs évités le bonheur se compose.
walkson
Modérateur
Messages : 1020 Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status :
Hors ligne
#3
Message
par walkson » sam. 09 sept. 2017 10:32
Bonjour
mimione a tout à fait raison mais pour le "fun"
$avant = "MonDossier" $apres = "NewDossier" $dossier = @DesktopDir & "\" _Rename
( $avant , $apres , $dossier ) Func _Rename
( $oldname , $newname , $folder ) RunWait ( @ComSpec & ' /C Ren "' & $folder & $oldname & '" "' & $newname & '"' , "" , @SW_HIDE ) EndFunc
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Boulanza
Niveau 9
Messages : 697 Enregistré le : mer. 31 juil. 2013 15:49
Status :
Hors ligne
#4
Message
par Boulanza » sam. 09 sept. 2017 10:34
Bonjour mimione,
Je dois renommer les titres des dossiers de documentaires en avi de tailles plus de 40 Go. Avec DirMove ( "source dir", "dest dir" [, flag = 0] ) : dest dir = saturation disque ...
La commande Ren dos n'a pas besoin de copier le contenu du dossier pour le renommer.
walkson
Modérateur
Messages : 1020 Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status :
Hors ligne
#5
Message
par walkson » sam. 09 sept. 2017 12:03
Je me suis amusé à tester les 2 méthodes sur un dossier de 121 go
_Rename()>> 45.1907515378014
DirMove()>> 149.143081697957
Votre fonction est plus rapide mais en 149 milliseconds, visiblement Dirmove() ne recopie pas les données mais change simplement le nom
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
mikell
Spammer !
Messages : 6292 Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status :
Hors ligne
#6
Message
par mikell » sam. 09 sept. 2017 12:25
Marche aussi
RunWait(@ComSpec & ' /C Ren "' & $oldname & '" "' & $newname & '"', $folder, @SW_HIDE)
Pour l'anecdote, REN est case sensitive (essaie de renommer "dossier" en "Dossier")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Messages : 697 Enregistré le : mer. 31 juil. 2013 15:49
Status :
Hors ligne
#7
Message
par Boulanza » dim. 10 sept. 2017 00:51
Bonsoir,
Merci à vous tous pour votre collaboration.
Cordialement.