Comment puis-je renommer chaque fichier du dossier ?
le motif est : (première partie du nom de fichier).digit_(nom de fin)
par exemple
a.1_f
b.2_f
c.3_g
Je voudrais le remplacer par
a.01_f
b.02_f
c.03_ g
...
Merci de votre aide
Comment puis-je renommer chaque fichier du dossier ?
le motif est : (première partie du nom de fichier).digit_(nom de fin)
par exemple
a.1_f
b.2_f
c.3_g
Je voudrais le remplacer par
a.01_f
b.02_f
c.03_ g
...
Merci de votre aide
Essayez ça :
Get-ChildItem | Where {!$_.PSIsContainer} |
Rename-Item -NewName {$_ -replace '([^.]+)\.(\d)(\w)', '$1.0$2$3'} -wh
Ou si vous avez plus de neuf dossiers :
gci | ? {!$_.PSIsContainer -and $_.Name -match '([^.]+\.)(\d)(\w+)'} |
rni -NewName {$matches[1] + ("{0:00}" -f [int]$matches[2]) + $matches[3]} -wh
Le deuxième exemple utilise des alias pour raccourcir la commande (plus facile à taper). gci
est l'alias pour Get-ChildItem
, ?
est l'alias pour Where-Object
y rni
est l'alias pour Rename-Item
. Le site -wh
invoque le WhatIf
où PowerShell vous montrera ce qu'il fera pour que vous puissiez modifier la commande jusqu'à ce que vous soyez satisfait des résultats. Ensuite, supprimez le -wh
pour l'exécuter.
Une façon d'y parvenir est de décomposer le fichier au moyen d'expressions régulières, puis d'assembler le nouveau nom du fichier à partir des parties, suivi d'un Rename-Item
\w+\.\d+_\w
Get-ChildItem
& Foreach-Object
ou comme j'aime l'écrire ls | % {}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.