How can I change the timestamp on a file? [duplicate]

Solution 1:

Due to William Jackson's answer, I found a similar question on Stack Overflow.

The accepted answer states to use Powershell and these commands:

$(Get-Item ).creationtime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastaccesstime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastwritetime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")

Edit

Two examples:

(This one is from the comments:) Set the last-access time for a file aaa.csv to the current time:

$(Get-Item aaa.csv).lastwritetime=$(Get-Date)

Set the creation time of a file foo.txt to November 24, 2015, at 6:00am:

$(Get-Item foo.txt).creationtime=$(Get-Date "11/24/2015 06:00 am")

Solution 2:

See the answers to this question.

Specifically, this can be done natively with:

copy /b filename.ext +,,

This will set the timestamp to the current time.

Documentation for the copy command is on TechNet.

The commas indicate the omission of the Destination parameter.

Solution 3:

Nirsoft to the rescue: try the freeware tool nircmd. It's a bunch of useful tools in one small command line program. One of the commands allows you to specify either or both of created time and modified time, like this:

nircmd.exe setfiletime "c:\temp\myfile.txt" "24-06-2003 17:57:11" "22-11-2005 10:21:56"

Solution 4:

Using Cygwin, to set the timestamp of test.txt to January 31, 2000, at 00:01.00:

touch -t 200001310001.00 test.txt