"No hay ningún disco en la unidad". mensaje de error de una aplicación que se acaba de copiar de un CD con el archivo por lotes xcopy pero que no lo requiere en absoluto

"No hay ningún disco en la unidad". mensaje de error de una aplicación que se acaba de copiar de un CD con el archivo por lotes xcopy pero que no lo requiere en absoluto

Todo,

Tengo un problema interesante que he buscado por todas partes una respuesta y me he quedado corto. Esperemos que alguien pueda arrojar algo de luz sobre por qué sucede esto.

Tengo un CD que contiene varias aplicaciones C++ y un archivo por lotes que se ejecuta para copiar los archivos en los lugares correctos usando XCOPY. Sí, la operación xcopy se realiza correctamente y las nuevas aplicaciones se colocan en los lugares correctos.

El problema que tengo es que justo después de que el archivo por lotes ha terminado de copiarlo, cierro la ventana del archivo por lotes, expulso el CD y ejecuto cualquiera de las aplicaciones recién copiadas desde su nueva ubicación en la computadora. Recibo el error de Windows "No hay disco en la unidad. Inserte un disco en la unidad D:". (Ese es el nombre de mi unidad de CD)

Mis programas NO tienen ninguna referencia a ninguna ruta codificada/relativa. De hecho, una vez que reconozco este error 4 o 5 veces y vuelvo a abrir el programa, NUNCA vuelvo a ver el error. Para que el error vuelva a aparecer, tengo que ejecutar el archivo por lotes nuevamente desde el CD y sacar el CD antes de ejecutar la aplicación.

Solo para obtener más aclaraciones, copiar y pegar manualmente (Ctrl+c, Ctrl+v) de una aplicación desde el disco funciona bien. Si copio/pego y expulso el CD manualmente, el programa funciona bien. Este error sólo ocurre la primera vez que se ejecuta el programa después de copiarlo con un archivo por lotes y quitar el CD antes de ejecutar el programa. Además, reiniciar la computadora después de ejecutar el archivo por lotes también evita que este problema ocurra por completo.

Sé lo que estás diciendo, si reiniciar la computadora después de copiar el archivo soluciona el problema, ¿por qué hace esta pregunta aquí? Bueno, tengo que copiar este archivo en más de 30 computadoras que no están conectadas a la red a la vez y lleva MUCHO tiempo reiniciar cada una de ellas.

¿Hay algún etiquetado extraño de Windows en las aplicaciones cuando se copian con XCOPY donde el programa todavía cree que se encuentra en el CD después de copiarse? ¿Alguien tiene alguna sugerencia, comentario o enlace que pueda orientarme en la dirección correcta? Cualquier ayuda sería fenomenal.

¡Muchas gracias!

EDITAR: Olvidé mencionar que esto está en el sistema operativo Windows XP.

EDITAR2: Aquí está el código de mi archivo por lotes.


@ECHO OFF

SET INSTALLSERVER=%~dp0
SET AppProgramFiles=%ProgramFiles%\ApplicationName\

XCOPY "%INSTALLSERVER%Scenario\*.*" "%AppProgramFiles%Scenario\" /C /Y /q
XCOPY "%INSTALLSERVER%Plan\*.*" "%AppProgramFiles%Plan\" /C /Y /q
XCOPY "%INSTALLSERVER%Data" "%AppProgramFiles%Data\" /C /Y /q /e
XCOPY "%INSTALLSERVER%Misc\*.*" "%AppProgramFiles%Misc\" /C /Y /q


Como mencioné anteriormente, puedo copiar y pegar la aplicación yo mismo y el programa funciona bien. NO hay error si lo hago de esta manera. El error "No hay disco en la unidad" SÓLO aparece si copio la aplicación usando un archivo por lotes. De hecho, he visto el mismo problema si también copio una aplicación usando un archivo vbscript. Me pregunto si Windows XP tiene alguna forma extraña de etiquetar aplicaciones que se copian de un CD mediante un proceso como por lotes/vbscript. ¿Algunas ideas?

información relacionada