Here is something that I posted to PCSOFT almost a year ago.
The program xcopy32 has two parts. A 16 bit part (sort of a limited edition) that works
when xcopy32 thinks that it was called from a DOS environment and the full (32 bit)
version that works when xcopy32 perceives that it is being run within the Win95 GUI.
If you run xcopy32 after booting from a floppy, or running Win95 in DOS mode, or after
booting to Command Prompt Only, or even from a DOS prompt (within Win95) where the box
"Prevent MS-DOS based programs from detecting Windows" is checked, xcopy32 will
not run with the full set of switches.
As per comments from Microsoft, authors of XCOPY:
Don't run xcopy32 directly. Ever. Always run xcopy. Xcopy.exe...sets up a few things
and then runs Xcopy32 with the appropriate settings...
If you are running in Windows mode, xcopy runs the 32-bit version of xcopy32.exe. If
you are running in DOS mode, xcopy runs the 16-bit version of xcopy32.exe. (Yes,
xcopy32.exe is two, two, two programs in one.) If you look carefully, xcopy.exe is a tiny
little program. Xcopy is just a little front-end for xcopy32, which is where all the real
work happens... It was a mistake to give that other file the name "xcopy32.exe".
I should've called it "xcopy.mod"... Xcopy.exe is the only program you should
run.
I was given five days to add LFN support to Xcopy...I did what I could in the time I
had...it was easier to add the /h option to the Win95 version than the DOS version. (The
DOS version is written in assembly language. The Win95 version is written in C.)....I had
some time left over, so I added /H and /K and /L and a few other switches to the 32-bit
version.
If you are running in DOS mode, then only the DOS xcopy features are available. Xcopy
handles everything, *provided* you run it from within the Windows 95 GUI. The /H and /K
options are supported only in Windows 95 mode.