- 締切済み
xcopyで共有違反が出てもコピーする方法は?
xcopyを使ってアプリケーションのファイルをコピーするWindowsのバッチを作っているのですが、アプリケーションを立ち上げたままの場合だと共有違反というエラーが出て、そのファイルはコピーされません。 共有違反が起こったファイルもデータを壊さず強制的にコピーするコマンドなどはないでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Higurashi777
- ベストアンサー率63% (6315/9921)
「/c」(エラーが発生しても強制的にコピーを続ける)オプションをつけても駄目ですか? でなければSRCpyというツールをダウンロードして使用するとか・・・。 以上、ご参考まで。
- chie65536(@chie65535)
- ベストアンサー率44% (8800/19959)
「コピーする」のであれば、コピー前に「コピー元フォルダ」は判っている筈です。 「コピー元フォルダ」が判っているのであれば「そのフォルダの中にあるであろう、アプリケーション」も事前に判る筈です。 アプリケーションが判るのであれば、そのアプリケーションの「イメージ名」も判ります。 コマンドプロンプトで「tasklist」と実行すると、現在実行中のプロセスの「イメージ名」がリストされます。 その中に「コピー元のフォルダにあるアプリケーションと同じ名前の物」があれば、それを「強制終了」させてあげれば、コピー出来るようになります。 実行中のアプリを強制終了するには、コマンドプロンプトで「taskkill /F /IM イメージ名」を実行します。 例えば「taskkill /F /IM notepad.exe」とやると、メモ帖が強制終了します。 同じ名前のアプリケーションが複数動いている場合、同じ名前の物がすべて終了されます。 taskkillでプログラムを殺した後なら、いくらでもアプリケーション自身をコピー出来ます。 「tasklistでリストして、何が動いているか調べて、動いてたらtaskkillで殺す」と言うのが面倒なのであれば「動いているかどうかに関わらず、動いていると困るであろうプログラム名を、とにかくすべてtaskkillしちゃう」と言う手もあります。 例えば、C:\Program Files\の下にある「すべてのexe」を検索して調べて、片っ端からtaskkillで殺してしまえば、C:\Program Files\の下で動くアプリは居なくなる筈です。 そうすれば、C:\Program Files\の下は、自由にコピーできる筈です(が、たま~に失敗します。完全には殺しきれないので)