Functions/Set-FileTime.ps1
function Set-FileTime { <# .SYNOPSIS A function to change the file time properties: LastWriteTime, LastAccessTime, CreationTime .DESCRIPTION A function to change the file time properties: LastWriteTime, LastAccessTime, CreationTime .PARAMETER Path Path to a file .PARAMETER CreationTime Date to set the CreationTime property to .PARAMETER LastAccessTime Date to set the LastAccessTime property to .PARAMETER LastWriteTime Date to set the LastWriteTime property to .EXAMPLE Test-MyTestFunction -Verbose Explanation of the function or its result. You can include multiple examples with additional .EXAMPLE lines #> [CmdletBinding(DefaultParameterSetName = 'ByPipeline')] param ( # [Parameter(Mandatory, Position = 0, ParameterSetName = 'ByName')] # [string]$FullName, [Parameter(Mandatory, ValueFromPipeline = $true, ParameterSetName = 'ByPipeline')] [string[]] $Path, [Parameter()] [datetime] $CreationTime, [Parameter()] [datetime]$LastAccessTime, [Parameter()] [datetime]$LastWriteTime ) begin { } process { foreach ($item in $path) { $file = Get-Item -Path $item if (-not ($file -is [System.IO.FileInfo])) { Write-Error "Invalid input: Must be a file." return } if ($null -ne $CreationTime) { (Get-Item -LiteralPath $item).CreationTime = $CreationTime } if ($null -ne $LastAccessTime) { (Get-Item -LiteralPath $item).LastAccessTime = $LastAccessTime } if ($null -ne $LastWriteTime) { (Get-Item -LiteralPath $item).LastWriteTime = $LastWriteTime } } } end { } } |