こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

robocopyで意図しないフォルダをスキャン

マイドキュメントのバックアップを取るため、robocopyのバッチファイルを作成し、ファイル名をbackupにしてダブルクリックして実行したのですが、意図しないフォルダ(C:\Users\(ユーザー名)\Documents\My Music\)をスキャンしてしまい、そこでアクセスが拒否され、そこから進みません。
どのようにすれば、マイドキュメント以下にあるフォルダすべてをバックアップできるのでしょうか?

※ちなみに/R:0を使用すればアクセスが拒否されたフォルダをスキップしてバックアップできることは分かったのですが、意図しないフォルダをスキャンしているのが、なんとも気持ち悪いため、別の方法でお願いします。


■backup.batの中身
robocopy "C:\Users\(ユーザー名)\Documents" "E:\ドキュメントのバックアップ" /MIR

■実行後のエラー
2013/03/14 23:05:17 エラー 5 (0x00000005) コピー元ディレクトリをスキャンしていま
す C:\Users\(ユーザー名)\Documents\My Music\
アクセスが拒否されました。

投稿日時 - 2013-03-14 23:33:32

QNo.7993895

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

robocopyの問題ではなくて、基本的な確認ですが・・・。

そもそも C:\Users\(ユーザー名)\Documents は普通の方法でコピーできているのですか?
普通の方法とは、フォルダ丸ごとコピーする、たとえば xcopy で試してみてください。
xcopyでもアクセス許可エラーが発生するようでは基本的な対応が必要です。

robocopyの前処理として\Documentsフォルダ内の
全てのフォルダやファイル(robocopyで除外する指定をしたフォルダやファイルを除いて)にアクセス許可を付与しておく必要があります。
アクセス許可が無ければcopy、xcopyでもコピーできません。
---
batファイルの前に
takeown コマンド
icacls コマンド
を使ってアクセス許可を付与するscriptを追加する必要があります。
ただし、処理後にアクセス許可を元に戻す配慮が必要ならば、
該当フォルダ、ファイル名を一時保存するなどの対応が必要です。

投稿日時 - 2013-03-15 10:55:44

補足

/R:0を使用して、エラー時のリトライ回数を0にすると正常にコピーされますので、余計なフォルダがスキャンされなければ問題ないようです。

C:\Users\(ユーザー名)\Documents\My Music\ ←ですが
、XPとの互換を保つためのフォルダのようです。そのため特殊なフォルダのようで…。
こういった特殊なフォルダをスキャンの対象から除外する方法があればいいのですが。

投稿日時 - 2013-03-15 12:42:03

お礼

検索した結果、互換を保つためのフォルダ(ファイル?)はジャンクションというもので、これらを/XDで除外すれば正常にコピーできました。ありがとうございました。

※以下の内容でドキュメントのコピーができます。
robocopy "C:\Users\(ユーザー名)\Documents" "E:\ドキュメントのバックアップ" /MIR /XD "My Pictures" "My Music" "My Videos"

投稿日時 - 2013-03-15 12:58:52

あなたにオススメの質問