2

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.

Dan Hall
  • 1,474
  • 2
  • 18
  • 43

2 Answers2

2

In Powershell, this works:

(gci)[1].LastWriteTimeUtc = (New-Object datetime 2013,12,31)
Mike Makarov
  • 1,287
  • 8
  • 17
1

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")
Dan Hall
  • 1,474
  • 2
  • 18
  • 43