I am running this under NTVDM Does that make a diffrernce?
Yep, that changes things, Running the batch via command.com via the 16-bit DOS emulation provided via NTVDM means there will be no NT Command extensions available. It also means that all paths must be 8.3 paths, and there are a number of other limitations.
If you enter the command:
echo %path%
what is output? From the sounds of it there may be values listed that are an invalid drive under NTVDM. This message is output when command.com starts up. It looks like two entries were considered invalid drive specs. It's also possibly why you get "Bad Command or File Name" as it cannot find xcopy as a result.
One possible workaround is to "escape" NTVDM. For example instead of having the MS-DOS program in question run your batch file- which will go into command.com- you may be able to configure it to run your batch file through cmd (cmd /c batch.bat) if you can change the command. If not, you can have the batch file it runs instead launch your main batch file via cmd. That should hopefully prevent issues as the batch will be running under the same cmd.exe environment you've already confirmed it to function correctly with.
For others- I am fairly certain their "batch file" consists of one xcopy command. It is running under the command.com interpreter of MS-DOS which is being launched, as described by the OP, by another MS-DOS program; This all takes place under the 16-bit emulation of NTVDM for MS-DOS applications, present in all 32-bit Windows versions. The MS-DOS command interpreter considers multiple entries in the PATH variable invalid, which is why those messages appear. when it then runs the batch itself, it can't find xcopy, possible because of those path errors - and thus emits "Bad Command or Filename".