「ドライブにディスクがありません。」バッチファイルxcopyを使用してCDからコピーしただけで、まったく必要のないアプリケーションからのエラーメッセージ


0

すべて、

私は興味深い問題を抱えており、どこでも答えを探して、不足している。うまくいけば、そこにいる誰かがこれがなぜ起こっているのかについていくらかの光を当てることができます。

いくつかのC ++アプリケーションと、XCOPYを使用してファイルを正しい場所にコピーするために実行されるバッチファイルを含むCDがあります。はい、xcopy操作は正常に行われ、新しいアプリケーションは正しい場所に配置されます。

私が抱えている問題は、バッチファイルがファイルのコピーを終了した直後であり、バッチファイルウィンドウを閉じ、CDを取り出し、コンピューター上の新しい場所から新しくコピーしたアプリケーションを実行します。「ドライブにディスクがありません。ドライブDにディスクを挿入してください:」というWindowsエラーが表示されます。(それは私のCDドライブの名前です)

私のプログラムには、ハードコーディングされた/相対パスへの参照がまったくありません。実際、一度このエラーを4〜5回確認し、プログラムを再度開くと、エラーが再び表示されることはありません。エラーが再び表示されるようにするには、アプリケーションを実行する前に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からコピーされたアプリケーションにタグを付ける奇妙な方法があるかどうか疑問に思っていますか?何か案は?


これは、実際にはプログラミングやプログラマーツールに関連する質問ではなく、スーパーユーザーにより適しています。おそらくここで閉じられます。の/Jスイッチを使用してみてくださいxcopy。これにより、バッファなしのファイルI / Oが使用されます。入力help xcopy詳細は、コマンドプロンプトで。
ケンホワイト

Ken:これはXPマシンで行われていることを忘れていました。XCOPYの/ Jスイッチはそのために存在せず、それが先に言及しなかったのは私のせいです。私の質問の私の目標は、プログラミング経験のある人がこの問題に遭遇したことがあるかどうか、そしてそれを修正するために何をしたかを見ることだけでしたか?あなたが投稿したスーパーユーザーサイトのことは聞いたことがありませんが、ここで答えが見つからない場合は、ぜひご覧ください。どうもありがとうございました。

StackOverflowは、プログラミングおよびプログラマーツールの質問に限定されています(FAQおよびツアーページを参照してください。「XCopyを使用してCDからファイルをコピーする方法」は、これらのカテゴリのいずれにも当てはまりません。おそらくここで閉じられます。
ケンホワイト

バッチファイルまたはプログラムのいずれかに、初期の「現在/デフォルトのドライブ/フォルダ」があるように見えます。「私のプログラムには参照がありません...」から、プログラムを書いたと結論付けることができますか?その場合、どの初期化コードがドライブ/フォルダーにアクセスしていますか?また、質問を編集してバッチファイルを表示することをお勧めします。そうは言っても、それは本当にSOの質問かもしれません;
Jan Doggen

1月:提案をありがとう、バッチファイルのコードを投稿に追加しました。これがアプリケーション自体の問題だとは本当に思いません。上記で述べたように、ディスクからアプリケーションを手動でコピーし、ディスクをポップアウトすれば、アプリケーションは正常に動作します。この問題は、バッチ/ vbscriptファイルを使用してディスクからアプリケーションをコピーし、ディスクを取り出して、すぐにプログラムを実行しようとした後にのみ発生します。私が答えることができる以上にWindowsの知識を持っている人がWindowsでやっていることを願っています。
ダグ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.