Accueil > Powershell > Renommer vos photos avec la date de prise de vue

Renommer vos photos avec la date de prise de vue

Mon problème, j’utilise plusieurs appareils photos et mon smartphone pour immortaliser ma petite famille. De ce fait, je me retrouve avec des photos DSC… partout. Je souhaite les classer chronologiquement avec Powershell.
De nombreux programme sous Windows le font en se basant sur EXIF.
Mais quoi de mieux que le faire soit même en Powershell.
Grâces aux Métadonnées EXIF voici ce qu’il est possible de faire.

?View Code POWERSHELL
[reflection.assembly]::loadfile( "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll") > $null
if ((Test-Path -path "Result") -ne $True)
{
New-Item -Name "Result" -type directory
}
$Files = Get-ChildItem -filter *.jpg
foreach ($file in $Files) 
{
$foo=New-Object -TypeName system.drawing.bitmap -ArgumentList $File.fullname
$date = $foo.GetPropertyItem(36867).value[0..20]
$arYear = [Char]$date[0],[Char]$date[1],[Char]$date[2],[Char]$date[3]
$arMonth = [Char]$date[5],[Char]$date[6]
$arDay = [Char]$date[8],[Char]$date[9]
$strYear = [String]::Join("",$arYear)
$strMonth = [String]::Join("",$arMonth) 
$strDay = [String]::Join("",$arDay)
$DateTaken = $strYear + "-" + $strMonth + "-" + $strDay
$time = [Char]$date[11],[Char]$date[12],[Char]$date[14],[Char]$date[15],[Char]$date[17],[Char]$date[18]
$strtime = [String]::Join("",$time)
$taken = $DateTaken + "-" + $strtime + ".jpg"
$TargetPath = ".\result\" + $taken
Copy-Item -PassThru $File.fullname -Destination $TargetPath
}
Categories: Powershell Tags: , ,

Vous avez aimé cet article ? Alors partagez-le en cliquant sur les boutons ci-dessous :


Twitter Facebook Google Plus Linkedin

Article rédigé par Christophe Bluteau.

  1. SGM
    24/04/2016 à 19:38 | #1

    Bonjour,

    Merci pour ce script, cependant lors de prise de photos en rafale, la copie n’est pas possible car certaines photos ont les mêmes noms de fichiers.
    Est ce qu’il est possible de simplement renommer les fichiers avec la date de prise de vue?

    D’avance merci

  1. Pas encore de trackbacks