Renommez plusieurs fichiers en «Date / heure modifiée» à l'aide de cmd ou Powershell

9

J'ai des centaines de fichiers JPG dans un dossier. Je veux renommer chaque fichier afin que le nom du fichier soit remplacé par "Date / heure modifiée" de ce fichier, à savoir DD.MM.RRRR.HH.MM.jpg. Par exemple,

Before    After  

001.jpg   11.01.2011.16.58.jpg  
002.jpg   12.01.2011.09.32.jpg  
003.jpg   14.01.2011.12.41.jpg  
...       ...

Étant donné que deux points (:) ne peuvent pas être utilisés dans les noms de fichiers, les deux points entre HH et MM doivent être remplacés par un point.

Je ne veux pas utiliser un outil tiers. Pouvez-vous me fournir le code pour y parvenir dans Powershell ou en ligne de commande?

Mehper C. Palavuzlar
la source

Réponses:

15

Essayez ceci dans Powershell:

Get-ChildItem *.jpg | Rename-Item -newname {$_.LastWriteTime.toString("dd.MM.yyyy.HH.mm") + ".jpg"}
Siim K
la source
0

J'espère que vous ne vous occupez pas de mes commentaires ici.

'Rename-Item' m'a donné cette erreur: Rename-Item: Impossible de créer un fichier alors que ce fichier existe déjà.

J'ai donc ajouté à la solution de Siim K comme suit et l'ai exécuté dans «Windows Powershell ISE»:

Get-ChildItem * .jpg | ForEach-Object {$ NewName = $ .LastWriteTime.toString ("yyyy.MM.dd.HH.mm.ss.ss") + ($ script: i ++) + ".jpg" $ Destination = Join-Path -Path $ .Directory.FullName -ChildPath $ NewName Move-Item -Path $ _. FullName -Destination $ Destination -Force}

J'ai trouvé que l'ordre 'aaaa.MM.dd.mm.ss.ss' listait mieux mes images et j'ai reconnu qu'aucun de mes décomptes d'images n'était réduit (purgé accidentellement) dans le dossier également. J'espère que cela sera utile à d'autres «superutilisateurs» (débutants ou expérimentés).

Tony Nilsson
la source