I imagine you will find the default system date is set to a different date format. Try
echo %date%
then you will either have to change the system locale using the "set default" button in regional options (or wherever it is in xp/vista never looked) or change the parts of the %date:~ etc. to be the different parts of the string. At the moment it takes:
the last 4 chars (year), from 4th char for 2 (month?), then from the 7th char for 2.
I imagine it has no Day component at the beginning so it will end up with a / character in the filename you are making?
Try:
set today=%date:~-4%%date:~0,2%%date:~3,2%
Steve