Page 1 sur 1

[R] Renommer dossier sous la commande dos : "Ren"

Posté : sam. 09 sept. 2017 03:49
par Boulanza
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

Re: [..] Renommer dossier sous la commande dos : "Ren"

Posté : sam. 09 sept. 2017 08:56
par mimione
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!

Re: [..] Renommer dossier sous la commande dos : "Ren"

Posté : sam. 09 sept. 2017 10:32
par walkson
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

Re: [..] Renommer dossier sous la commande dos : "Ren"

Posté : sam. 09 sept. 2017 10:34
par Boulanza
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.

Re: [..] Renommer dossier sous la commande dos : "Ren"

Posté : sam. 09 sept. 2017 12:03
par walkson
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

Re: [..] Renommer dossier sous la commande dos : "Ren"

Posté : sam. 09 sept. 2017 12:25
par mikell
Marche aussi
RunWait(@ComSpec & ' /C Ren "' & $oldname & '" "' & $newname & '"', $folder, @SW_HIDE)

Pour l'anecdote, REN est case sensitive (essaie de renommer "dossier" en "Dossier")

Re: [..] Renommer dossier sous la commande dos : "Ren"

Posté : dim. 10 sept. 2017 00:51
par Boulanza
Bonsoir,
Merci à vous tous pour votre collaboration.
Cordialement.