part1 of move bug from a volume to another have been solve, the part two are in Reactos MoveFileEx
Modified: trunk/reactos/subsys/system/cmd/move.c

Modified: trunk/reactos/subsys/system/cmd/move.c
--- trunk/reactos/subsys/system/cmd/move.c	2005-07-15 18:38:01 UTC (rev 16590)
+++ trunk/reactos/subsys/system/cmd/move.c	2005-07-15 19:15:59 UTC (rev 16591)
@@ -170,7 +170,7 @@
 #endif
 				if (!(dwFlags & MOVE_NOTHING))
 					continue;
-				MoveFile (szSrcPath, szDestPath);
+				MoveFileEx (szSrcPath, szDestPath, MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH | MOVEFILE_COPY_ALLOWED);
 			}
 			else
 			{
@@ -208,7 +208,7 @@
 					/*delete the file that might be there first*/
 					DeleteFile(szFullDestPath);
 					/*move the file*/
-					if (MoveFile (szSrcPath, szFullDestPath))
+					if (MoveFileEx (szSrcPath, szFullDestPath, MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH | MOVEFILE_COPY_ALLOWED))
 						LoadString(CMD_ModuleHandle, STRING_MOVE_ERROR1, szMsg, RC_STRING_MAX_SIZE);
 					else
 						LoadString(CMD_ModuleHandle, STRING_MOVE_ERROR2, szMsg, RC_STRING_MAX_SIZE);
@@ -246,7 +246,7 @@
 					if it was already there*/
 					DeleteFile(szDestPath);
 					/*do the moving*/
-					if (MoveFile (szSrcPath, szDestPath))
+					if (MoveFileEx (szSrcPath, szDestPath, MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH | MOVEFILE_COPY_ALLOWED))
 						LoadString(CMD_ModuleHandle, STRING_MOVE_ERROR1, szMsg, RC_STRING_MAX_SIZE);
 					else
 						LoadString(CMD_ModuleHandle, STRING_MOVE_ERROR2, szMsg, RC_STRING_MAX_SIZE);