“驅動器中沒有磁碟。”來自剛剛使用批次檔 xcopy 從 CD 複製但根本不需要它的應用程式的錯誤訊息

“驅動器中沒有磁碟。”來自剛剛使用批次檔 xcopy 從 CD 複製但根本不需要它的應用程式的錯誤訊息

全部,

我有一個有趣的問題,我到處尋找答案但沒有找到答案。希望有人能夠解釋為什麼會發生這種情況。

我有一張 CD,其中包含多個 C++ 應用程式和一個批次文件,運行該文件以使用 XCOPY 將文件複製到正確的位置。是的,xcopy 操作成功發生,並且新應用程式被放置在正確的位置。

我遇到的問題是在批次檔完成檔案複製後,我關閉批次檔窗口,彈出 CD,然後從電腦上的新位置執行任何新複製的應用程式。我收到 Windows 錯誤「磁碟機中沒有磁碟。請將磁碟插入磁碟機 D:」。 (這是我的 CD 光碟機的名稱)

我的程式根本沒有任何對任何硬編碼/相對路徑的引用。事實上,一旦我承認這個錯誤四到五次並重新打開程序,我就再也不會看到這個錯誤了。要看到錯誤再次彈出,我必須再次從 CD 運行批次文件,並在運行應用程式之前取出 CD。

為了獲得更多說明,從磁碟手動複製/貼上(Ctrl+c、Ctrl+v)應用程式效果很好。如果我手動複製/貼上並彈出 CD,程式就可以正常工作。只有在我使用批次檔複製程式並在執行程式之前取出 CD 後,程式第一次執行時才會出現此錯誤。此外,在執行批次檔後重新啟動電腦也可以完全防止此問題的發生。

我知道你在說什麼,如果複製檔案後重新啟動電腦可以解決問題,那麼他為什麼在這裡問這個問題?好吧,我必須一次在 30 多台非聯網電腦上複製這個文件,並且需要很長時間才能重新啟動每台電腦。

當使用 XCOPY 將應用程式複製到複製後程式仍然認為它位於 CD 上的位置時,是否有一些奇怪的 Windows 標記應用程式?有沒有人有任何建議、評論或連結可以為我指明正確的方向?任何幫助都將是非凡的。

多謝!

編輯:我忘了提及這是在 Windows XP 作業系統上。

EDIT2:這是我的批次檔的程式碼。


@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


正如我上面提到的,我可以自己複製/貼上應用程序,程式運行得很好。如果我這樣做的話就沒有錯。只有當我使用批次檔複製應用程式時,才會出現「磁碟機中沒有磁碟」錯誤。事實上,如果我也使用 vbscript 檔案複製應用程序,我也會遇到相同的問題。我想知道 Windows XP 是否有一些奇怪的方法來標記使用批次/vbscript 等進程從 CD 複製的應用程式?有任何想法嗎?

相關內容