Archive

Articles taggués ‘EXIF’

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: , ,