"Não há disco na unidade." mensagem de erro de um aplicativo que acabou de ser copiado de um CD com arquivo em lote xcopy, mas não exige nada disso

"Não há disco na unidade." mensagem de erro de um aplicativo que acabou de ser copiado de um CD com arquivo em lote xcopy, mas não exige nada disso

Todos,

Tenho um problema interessante que procurei em todos os lugares por uma resposta e não consegui. Espero que alguém possa esclarecer por que isso está acontecendo.

Eu tenho um CD que contém vários aplicativos C++ e um arquivo em lote que é executado para copiar os arquivos nos locais corretos usando XCOPY. Sim, a operação xcopy acontece com sucesso e os novos aplicativos são colocados nos locais corretos.

O problema que estou tendo é que logo após o arquivo em lote terminar de copiar o arquivo, fecho a janela do arquivo em lote, ejeto o CD e executo qualquer um dos aplicativos recém-copiados de seu novo local no computador. Recebo o erro do Windows "Não há disco na unidade. Insira um disco na unidade D:". (Esse é o nome da minha unidade de CD)

Meus programas NÃO possuem nenhuma referência a nenhum caminho relativo/codificado. Na verdade, depois de reconhecer esse erro 4 ou 5 vezes e reabrir o programa, NUNCA mais vejo o erro. Para ver o erro aparecer novamente, preciso executar o arquivo em lote novamente a partir do CD e retirá-lo antes de executar o aplicativo.

Apenas para mais esclarecimentos, copiar/colar manualmente (Ctrl+c, Ctrl+v) de um aplicativo do disco funciona perfeitamente. Se eu copiar/colar e ejetar manualmente o CD, o programa funcionará perfeitamente. Este erro ocorre apenas na primeira vez que o programa é executado depois de copiá-lo com um arquivo em lote e remover o CD antes de executar o programa. Além disso, reiniciar o computador após a execução do arquivo em lote evita que esse problema também aconteça.

Eu sei o que você está dizendo, se reiniciar o computador depois de copiar o arquivo resolve o problema, então por que ele está fazendo essa pergunta aqui? Bem, eu tenho que copiar este arquivo em mais de 30 computadores fora da rede por vez e leva MUITO tempo para reiniciar cada um deles.

Existe alguma marcação estranha do Windows nos aplicativos quando eles são copiados com o XCOPY para onde o programa ainda pensa que está no CD após ser copiado? Alguém tem alguma sugestão, comentário ou link que possa me indicar a direção certa? Qualquer ajuda seria fenomenal.

Muito obrigado!

EDIT: esqueci de mencionar que isso está no sistema operacional Windows XP.

EDIT2: Aqui está o código do meu arquivo em lote.


@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 mencionei acima, posso copiar/colar o aplicativo sozinho e o programa funciona perfeitamente. NÃO há erro se eu fizer dessa maneira. O erro "Nenhum disco na unidade" aparece SOMENTE se eu copiar o aplicativo usando um arquivo em lote. Na verdade, já vi o mesmo problema se copiar um aplicativo usando um arquivo vbscript também. Estou me perguntando se o Windows XP tem alguma maneira estranha de marcar aplicativos que são copiados de um CD usando um processo como batch/vbscript. Alguma ideia?

informação relacionada