Bonjour.
J'ai des répertoires dont le nom est de la forme "repertoire_254gfy242j" que je souhaiterai renommer en "repertoire".
Je me bats depuis ce matin avec les ren, delims et eol sans résultat.
Est ce que quelqu'un peut m'aider ?
Bonjour.
J'ai des répertoires dont le nom est de la forme "repertoire_254gfy242j" que je souhaiterai renommer en "repertoire".
Je me bats depuis ce matin avec les ren, delims et eol sans résultat.
Est ce que quelqu'un peut m'aider ?
Bonjour,
La commande REN renomme uniquement des fichiers, pour renommer des dossiers il faut utiliser MOVE.
Voilà à quoi ça devrait ressembler (si les dossiers se trouvent sur le bureau) :
Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 pushd "%USERPROFILE%\Desktop" for /f "delims=" %%A in ('dir /b /ad') do ( for /f "tokens=1 delims=_" %%E in ("%%~A") do move "%%~dpnA" "%%~E" )
Merci.
J'ai oublié de préciser, je lance cette commande dans le repertoire où se trouve le nom de sous-repertoire à modifier.
Il n'y a pas toujours un "_" pour séparer mais le nom de ce sous répertoire commence toujours par "repertoire"
Si tu as 2 répertoires "repertoire_xxxxxx" au même endroit ils auront donc le même nom ?! Ce qui n'est pas permis par le système de fichier.
Donc tu veux les renommer mais en quoi d'autre ?
Il n'y a qu'un répertoire "repertoire_xxxxxx", pas de risque de ce côté là.
Puisqu'il n'y a qu'un seul répertoire :
Code batch : Sélectionner tout - Visualiser dans une fenêtre à part move "chemin vers le dossier\repertoire_xxxxxx" "repertoire"
Oui, mais je ne maitrise pas le xxxx, je ne sais pas de quoi il est fait.
Dans ce cas tu peux utiliser une wildcard :
Code batch : Sélectionner tout - Visualiser dans une fenêtre à part move "chemin vers le dossier\repertoire_*" "repertoire"
J'ai un acces denied avec move.
Je n'y arrive pas non plus avec robotcopy ni xcopy :
Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 set Rep_travail="C:\Laboratoire\Sources_Developement" set Nom_cible="developpement-develop" REM robocopy %Rep_travail%\%Nom_cible%* %Rep_travail%\%Nom_cible% /E /MOVE >> %logs% move %Rep_travail%\%Nom_cible%* %Rep_travail%\%Nom_cible% >> %logs% REM xcopy %Rep_travail%\%Nom_cible%* %Rep_travail%\%Nom_cible% /s /e /h >> %logs%
Dans ce cas il il s'agit d'un problème de permissions, le batch n'y est pour rien.
On ne peut pas forcer ses permissions ?
ou contourner ce problème ?
Le dossier est au moins autorisé en lecture, devrait pouvoir faire une copie?
Si le script est exécuté avec les droits admin tu peux modifier les permissions avec la commande ICACLS.
Le problème pourrait venir également d'un utilisateur ou d'un programme qui travaille dans le dossier pendant que tu essaies d'y accéder pour le renommer.
C'est assez facile à vérifier en passant par l'interface graphique.
C'est bon.
Ca marche.
Merci beaucoup.
Bonjour.
En fait il y a un problème que je n'avait vu.
il y a bien plusieurs (2) "objets" qui commence par dossier\repertoire : un repertoire : repertoire5468454gcd et un fichier zip : dossier\repertoire3254.zip
Et le :transforme le nom du zip.
Code batch : Sélectionner tout - Visualiser dans une fenêtre à part move "chemin vers le dossier\repertoire*" "repertoire"
Y a t-il un moyen pour que le "move" ne se fasse pas vers le ".zip" ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager