Windows Command Line - Changing a file modified timestamp to an earlier datetime

Dan Hall picture Dan Hall · Apr 20, 2018 · Viewed 7.8k times · Source

in windows command line i can use the following to change the timestamp of a file to the current datetime:

copy /b filename.ext +,,

what i need is a way to set the timestamp to a previous datetime (-1 day, -1 week etc)

is this possible?

What i typically do in linux is this:

touch -d "$(date -R -r filename) - 2 hours" filename

But i need this for windows command line, not powershell or any other alternative.

Answer

Dan Hall picture Dan Hall · Apr 20, 2018

In the end i used the windows port for Gnu:

http://gnuwin32.sourceforge.net/

This example changes the timestamp for all files in a folder:

for /f "tokens=*" %i in ('dir "C:\Data\*" /s /b') do ("GnuWin32\Touch.exe" -t 1003141400 "%i")

or in a batch script:

for /f "tokens=*" %%i in ('dir "C:\Data\*" /s /b') do ("GnuWin32\Touch.exe" -t 1003141400 "%%i")