Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1265 connectés 

  FORUM HardWare.fr
  Windows & Software
  Win 7

  Script pour renommer les fichiers comportant un certain mot

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script pour renommer les fichiers comportant un certain mot

n°3269251
nox1669
Posté le 10-04-2017 à 10:59:33  profilanswer
 

Bonjour,
 
J'aurais besoin d'un coup de pouce pour résoudre un problème :
J'ai une arborescence de dossiers dans lesquels j'ai des fichiers qui de base sont nommés client.xxx.txt, client.yyy.txt, zzz.client.xlsx....
Je souhaiterais automatiser le renommage de ces fichiers en remplaçant "client" par le nom du client, que j'aurais préalablement rentré dans la variable %client%.
Les différents fichiers en question sont des sous-répertoires différents.
 
Mon script est un simple .bat.
Merci de votre aide.

mood
Publicité
Posté le 10-04-2017 à 10:59:33  profilanswer
 

n°3269253
nex84
Dura lex, sed lex
Posté le 10-04-2017 à 11:15:59  profilanswer
 

Je suppose que le dossier est au nom du client ?
 
Si oui, une simple boucle sur tes sous dossiers (avec récupération du nom) te permettra de renommer tout ça.
 
Question scripting, c'est plus simple en powershell qu'en batch.


---------------
Come to the Dark Side, we have cookies.
n°3269254
nox1669
Posté le 10-04-2017 à 11:19:43  profilanswer
 

Bonjour,
 
Alors, je suis parti sur une boucle mais je suis pas certain d'avoir bien fait le truc.
 
dans mon script :  
set /P nomclient=Quel est le nom du client ?  
 
j'essaie ensuite la boucle ....
for /f "tokens=*" %%i in ('dir /S *client*) do (ren *client* *%nomclient%*)
Ca ne fonctionne pas et je pense que je n'ai pas la bonne méthode.
 
Je vais me mettre à powershell par la suite, mais pour ce cas-ci je crois qu'un simple .bat doit suffire.

n°3269269
nex84
Dura lex, sed lex
Posté le 10-04-2017 à 12:15:07  profilanswer
 

perso j'aurais fait un truc comme ça :

Code :
  1. $nomclient='<nom client>'
  2. ls -Path <chemin> |  ForEach-Object {$_ | Rename-Item -NewName $_.Name.Replace('client', '$nomclient')}

Message cité 1 fois
Message édité par nex84 le 10-04-2017 à 12:15:21

---------------
Come to the Dark Side, we have cookies.
n°3269278
nox1669
Posté le 10-04-2017 à 12:29:20  profilanswer
 

à la limite, oui en powershell..
j'ai rajouté -r pour le ls pour qu'il regarde dans les sous-répertoires.
 
par contre, j'ai une erreur avec le rename-item
 
je suis en train de chercher pas à pas

n°3269280
nox1669
Posté le 10-04-2017 à 12:56:22  profilanswer
 

nex84 a écrit :

perso j'aurais fait un truc comme ça :

Code :
  1. $nomclient='<nom client>'
  2. ls -Path <chemin> |  ForEach-Object {$_ | Rename-Item -NewName $_.Name.Replace('client', '$nomclient')}



 
Pour ce qu'il me fallait, c'était presque ça, voilà ce qui fonctionne :  
get-childitem -recurse -file | rename-item -newname {$_.name -replace 'client', $nomclient}
 
Il cherche tous les fichiers récursivement dans mon dossier et remplace dans le nom de ces fichiers le mot "client" par le nom du client précédemment renseigné dans la variable $nomclient.
 
Merci à toi nex84, j'aurais vraiment pensé que cela serait simple avec un .bat !!
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Win 7

  Script pour renommer les fichiers comportant un certain mot

 

Sujets relatifs
Quel cloud choisir pour simple partage de fichiers ?Fichiers Crypte par Ramsonware (stopper@india.com), Une solution ?
Importer une liste de fichiers dans un logiciel de gravuremon pc devient extremement lent au bout d'u certain temps
Windows ne trouve plus des fichiers existantsRépertoires insupprimables de millions de fichiers
Executer CMD.exe sur fichiers selectionnésWin10, renommer son dossier User [RESOLU]
Fichiers fantômes et impossibles de supprimer 
Plus de sujets relatifs à : Script pour renommer les fichiers comportant un certain mot



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR