Grub4dos uses a "savedefault" command which will make a restart return to the same OS.
I describe its use in this post
http://neosmart.net/forums/showthread.php?t=3596&p=37030#post37030
What it does, is store a single digit in a 2k file called "default" kept with the other boot files.
If you change that first digit before restart, the OS booted will be the "n+1"th OS in the boot menu
(OS are numbered from 0)
I'm not sure how much support grub4dos gets these days.
The syntax in that post is for an older version of grub4dos than currently in use,
the current syntax of the menu.lst in use on my PC today is
# NeoSmart Technologies' Vista Hide 'n Seek Beta
# as modified by Terry 7/2/09 to add W7 and 17/3/09 for Linux
# Modified 17/4/09 after disk reorg with dedicated boot partition
# Modified 7/10/09 to make W7 default and include W7 Apps partition
# Modified 20/9/11 to substitute Windows 8 for Linux and update grub4dos
# Modified 6/9/12 to add Windows 8 apps on installation of W8 RTM
timeout 10
default (hd0,0)/default
splashimage=/spit14.xpm
foreground 000000
background ffffff
title Windows7 64 bit B
find --set-root /Vista.C.HnS
unhide
find --set-root /Vista.E.HnS
unhide
find --set-root /Windows8.T.HnS
unhide
find --set-root /Windows8.O.HnS
unhide
find --set-root /Windows7.J.HnS
unhide
find --set-root /Windows7.I.HnS
unhide
chainloader /BOOTMGR
savedefault
boot
title Vista 64 bit
find --set-root /Windows7.I.HnS
unhide
find --set-root /Windows7.J.HnS
unhide
find --set-root /Windows8.T.HnS
unhide
find --set-root /Windows8.O.HnS
unhide
find --set-root /Vista.E.HnS
unhide
find --set-root /Vista.C.HnS
unhide
chainloader /BOOTMGR
savedefault
boot
title XP 32 bit
find --set-root /Vista.C.HnS
hide
find --set-root /Vista.E.HnS
hide
find --set-root /Windows7.I.HnS
hide
find --set-root /Windows7.J.HnS
hide
find --set-root /Windows8.O.HnS
hide
find --set-root /Windows8.T.HnS
hide
find --set-root /XP.D.HnS
chainloader /ntldr
savedefault
boot
title Windows8 64 bit
find --set-root /Vista.C.HnS
unhide
find --set-root /Vista.E.HnS
unhide
find --set-root /Windows7.I.HnS
unhide
find --set-root /Windows7.J.HnS
unhide
find --set-root /Windows8.O.HnS
unhide
find --set-root /Windows8.T.HnS
unhide
chainloader /BOOTMGR
savedefault
boot
# All your boot are belong to NeoSmart!