Types/RoughDraft.Media/set_Date.ps1
<# .SYNOPSIS Sets the Date Metadata .DESCRIPTION Changes the Date metadata for a media file (persistently, if possible) #> param( [ValidateScript({ if ($_ -match '^\d{4}$') { return $true } elseif ($_ -is [DateTime]) { return $true } else { throw "Year must be a 4-digit number or a DateTime object" } })] [PSObject] $Date ) $propertyToSet = [Ordered]@{date="$Date"} if (-not $this.'.Metadata') { $this.'.Metadata' = [Ordered]@{} } if ($Date -is [DateTime]) { $propertyToSet.date = $Date.ToString('yyyy-MM-dd') if (-not $this.'.Metadata'.year) { $propertyToSet.year = $Date.Year $this.'.Metadata'.year = $propertyToSet.year } } $this.'.Metadata'.date = $propertyToSet.date Set-Media -InputPath $this.InputPath -Property $propertyToSet |