66 lines
2.4 KiB
PowerShell
66 lines
2.4 KiB
PowerShell
function Update-LastModifiedTimestamp {
|
|
<#
|
|
.SYNOPSIS
|
|
This file replicates the familiar bash "touch" command, and is aliased as such.
|
|
If the filename present does not exist, it will create the file specified.
|
|
If the file already exists, it will update the last-modified time on the file to the current time.
|
|
|
|
.PARAMETER Path
|
|
[string] The appropriate path
|
|
|
|
.PARAMETER Timestamp
|
|
[System.DateTime] The specific time to set. Defaults to Now.
|
|
#>
|
|
[CmdletBinding()]
|
|
[OutputType([void])]
|
|
param (
|
|
[Parameter(Mandatory = $true, Position = 0)]
|
|
[string]$Path,
|
|
[Alias('T')]
|
|
[System.DateTime]$Timestamp = [System.DateTime]::Now
|
|
)
|
|
|
|
if (!(Test-Path -Path $Path)) {
|
|
New-File -Path $Path
|
|
}
|
|
|
|
(Get-Item -Path $Path).LastWriteTime = $Timestamp
|
|
}
|
|
|
|
Set-Alias -Name touch -Value Update-LastModifiedTimestamp
|
|
|
|
<#
|
|
GNU coreutils touch man page:
|
|
|
|
Usage: touch [OPTION]... FILE...
|
|
Update the access and modification times of each FILE to the current time.
|
|
|
|
A FILE argument that does not exist is created empty, unless -c or -h
|
|
is supplied.
|
|
|
|
A FILE argument string of - is handled specially and causes touch to
|
|
change the times of the file associated with standard output.
|
|
|
|
Mandatory arguments to long options are mandatory for short options too.
|
|
-a change only the access time
|
|
-c, --no-create do not create any files
|
|
-d, --date=STRING parse STRING and use it instead of current time
|
|
-f (ignored)
|
|
-h, --no-dereference affect each symbolic link instead of any referenced
|
|
file (useful only on systems that can change the
|
|
timestamps of a symlink)
|
|
-m change only the modification time
|
|
-r, --reference=FILE use this file's times instead of current time
|
|
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
|
|
--time=WORD change the specified time:
|
|
WORD is access, atime, or use: equivalent to -a
|
|
WORD is modify or mtime: equivalent to -m
|
|
--help display this help and exit
|
|
--version output version information and exit
|
|
|
|
Note that the -d and -t options accept different time-date formats.
|
|
|
|
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
|
|
Full documentation <https://www.gnu.org/software/coreutils/touch>
|
|
or available locally via: info '(coreutils) touch invocation'
|
|
#> |