Versioning files in Windows XP

This batch file copy your file(s) to "_bpath" (set it as you like) and add actual date, hours, minutes and seconds to it.

@echo off
Set _bpath=T:\Temp\
if [%1]==[] goto :eof
:loop
Set _file=%~n1%
Set _ext=%~x1%
For /f "tokens=1-3 delims=1234567890 " %%a in ("%time%") Do Set "delims=%%a%%b%%c"
For /f "tokens=1-4 delims=%delims%" %%G in ("%time%") Do (
   Set _hh=%%G
   Set _min=%%H
   Set _ss=%%I
   Set _ms=%%J
)
copy %1 "%_bpath%%_file%(%date:/=-% %_hh%h%_min%m%_ss%s)%_ext%"
shift
if not [%1]==[] goto loop

For convenience you could add this batch file to your "Send To" right click menu by copying it in %APPDATA%\Microsoft\Windows\SendTo

Or if you need more advanced features, a software that imitate the mac osx time machine, like Comodo Time Machine (free) or Genie Timeline (35$), could be a good choice.


I'd recommend using an actual version control system. Many of them have Windows clients and/or shell integration. A few examples:

  • Mercurial (with TortoiseHG)
  • Git
  • Subversion (with TortoiseSVN)
  • CVS (with TortoiseCVS)

Windows Vista and 7 have System Restore, which allows you to allocate a percentage of your hard drive for backing up old file revisions. This is probably closer to what you're looking for, but the disadvantage (aside from the fact that you're running WinXP) is that you cannot specify explicitly which files you want to be version-controlled--so you might lose some old revisions of files if you don't allocate enough of your hard drive for System Restore.


Ancient old RCS, though text only, is very light weight and is my solution to the same problem. There are more modern VCSes well suited to multi-file and multi-developer projects but for one person managing files one-at-a-time, RCS is just right.