right im getting somewhere I can get it working finally if I # out the mame lines otherwise it just trys to run mame instead of mess for some reason.  Not sure why its not calling mess when it can see the directory the rom is located in.  I changed my batch file to read
d:
cd \Emulators\mess
which seems to be working .
So now I just cant work out why its trying to run the other_roms\nes under mame rather than mess.  
edit It would seem after using that pause command its ot going to the :mess section of the script and I can t see why 
if "%2" == "d:\Emulators\other_roms\nes\" goto mess
mame.exe %1
pause
exit
:mess
cd \
d:
cd Emulators\mess
mess64.exe nes -cart %2\%1.nes
pause
exit
output
D:\Emulators\mame>if "D:\Emulators\other_roms\nes" == "d:\D:\Emulators\other_roms\nes\" goto mess
D:\Emulators\mame>mame.exe rom_name._(USA)
Unknown system rom_name._(USA)'
"rom_name._(USA)" approximately matches the follow
supported games (best match first):
ac1shid           Super Hi De Hi (Ace) (ACESYS1) (set 1)
ac1shida          Super Hi De Hi (Ace) (ACESYS1) (set 2)
ad5sslam          Super Slam (Bellfruit) (Adder 5) (set 1)
ad5sslama         Super Slam (Bellfruit) (Adder 5) (set 2)
ad5sslamb         Super Slam (Bellfruit) (Adder 5) (set 3)
ad5sslamc         Super Slam (Bellfruit) (Adder 5) (set 4)
ad5sslamd         Super Slam (Bellfruit) (Adder 5) (set 5)
ad5sslame         Super Slam (Bellfruit) (Adder 5) (set 6)
ad5sslamf         Super Slam (Bellfruit) (Adder 5) (set 7)
arac6000          Super Six Plus II English Mark Darts
as_sld            Super Little Devil (Astra, V700)
as_slda           Super Little Devil (Astra, V600)
as_sldb           Super Little Devil (Astra, V500)
as_sldc           Super Little Devil (Astra, V400)
as_sldd           Super Little Devil (Astra, V200)
as_slde           Super Little Devil (Astra, V101)
D:\Emulators\mame>pause
Press any key to continue . . .