• 締切済み

robocopyをすると隠し属性フォルダができる

今まで以下のようにしていて大丈夫な状態が続いていました。 robocopy D:\ E:\ /mir それを、以下のように robocopy D:\ E:\BACKUPS /mir バックアップ先にフォルダを指定して、BACKUPS以下にコピーを指定したときに問題が起こりました。 E:\BACKUPS フォルダの属性が強制的に隠しシステム(SとHがある状態)に変更されてしまいます。 バグなのか仕様なのかもわかりません。 E:\BACKUPS 以外のファイル・フォルダは正常です。 回避策としてバッチでコピー後に attrib -H -S E:\BACKUPS としております。 しかし、そうならないようにしたいのです。 また、バグなのか使い方の問題なのかも知りたいのです。 参考までに、 robocopy D:\ E:\BACKUPS\TEST /mir とすると E:\BACKUPS は正常で E:\BACKUPS\TEST のみが隠しシステムになってしまいます。 よろしくお願いします。

みんなの回答

  • 11041104
  • ベストアンサー率28% (6/21)
回答No.3

はじめて、 私も最近robocopyコマンドを使用してみたのですが、 以下URLの記事が参考になるのではないでしょうか。 http://sekirarablog.blogspot.jp/2013/07/robocopyxcopy.html >/XA:SH:ドライブ丸ごとの場合、 >コピー出来ないシステムファイル等がある場合はエラーになるので、                >これを追記することで隠しファイルとシステムファイルを除外するようにします。 とのことです。 参考にされてみてはいかがでしょうか。 私は、 上記URLを参考にして、 ドライブからバックアップ用NAS上ドライブにrobocopyコマンドにてコピーしましたが、 隠しファイル属性のものはコピーされていませんでした。 また、 コピー後も普通に(正常に?)コピー先ドライブにても フォルダが普通に表示されました。

参考URL:
http://sekirarablog.blogspot.jp/2013/07/robocopyxcopy.html
noname#208124
noname#208124
回答No.2

残念ながらこの挙動はバグではありません 完璧な回避方法も思い浮かびません(※1) 実はユーザーからは決して分かりませんがNTFSのルートディレクトリには隠しシステム属性が付いています(※2,3) robocopyはコピー元ディレクトリの属性を忠実にコピー先ディレクトリにコピーしているだけなのです ※1 xcopyなら D:\ E:\BACKUPS を D:\* E:\BACKUPS のようにディレクトリからディレクトリではなくディレクトリ以下からディレクトリにすれば回避できます 元々ディレクトリからディレクトリのコピーのためのrobocopyではこのような指定ができません /A-:SH を指定すればコピー先から隠しシステム属性を消せますがこの動作はコピーしたファイル全てに適用されます ※2 attribコマンドでは確認できません プログラムからのみ確認できます PowerShell なら Get-ItemProperty -Path D:\ | Format-list -Property Attributes とやれば属性を表示できます ※3 そのうえ属性を解除することもできません

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

たぶんrobocopyのバグだと思います。 ↓TechNet フォーラムでの、マイクロソフト社のフォーラムオペレータからの回答。 http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/eb3bc943-f249-4641-80fb-d378cb91d043/ 私もあきらめてそういうものとして(コピー後にattribすることにして)robocopyを使ってます。

koga2021
質問者

お礼

情報ありがとうございます。 次期サーバーのrobocopyは、この点も動作を設定できるようにバージョンアップしていると助かります。 その為のバージョンアップ料金が高そうですが・・・

関連するQ&A

  • ROBOCOPYのバッチ処理

    ROBOCOPYでは、一番上の階層は指定できないのでしょうか? 指定の仕方がまずいのでしょうか? エラーで止まってしまいます。 ROBOCOPY "D:\" "X:\" /MIR /XO また、初歩的な質問なのですが、バッチ処理では上から順に処理されていくと考えてよろしいくのでしょうか? 例えば下記のようにした場合 @ecoh off ROBOCOPY "D:\TEST1" "X:\TEST1" /MIR /XO ROBOCOPY "D:\TEST2" "X:\TEST2" /MIR /XO ROBOCOPY "D:\TEST3" "X:\TEST3" /MIR /XO D:\TEST1からX:\TEST1へのコピーが終わってから、D:\TEST2からX:\TEST2へのコピーが始まると考えてよろしいでしょうか? 同時に実行されて、マシンのリソースを過剰に喰ってしまわないかと心配しております。 よろしくお願い致します。

  • robocopyに関しての質問です

    robocopyで以下のスクリプトを作成しました。 robocopy フォルダA フォルダB /B /MIR /COPY:DATSOU /DCOPY:DAT /XO /R:1 /W:1 /NP /NFL /NDL /XC /XJF /XJD /LOG+:フォルダパス:\ファイル名.txt そこで、このコマンドを実際に動かしたのですが、1回目は正常に起動しました。フォルダAからフォルダBへのコピーは出来ました。 次にコピー先のBフォルダ内のCフォルダからDフォルダへEファイルを移動しました。 再度このコマンドを実行しましたら、フォルダAで更新されたファイルやフォルダはコピーできました。 しかし、コピー先で移動したEファイルが消えていました。 この回避方法を教えて下さい。

  • robocopyでコピー元のファイルが開かれている

    以下のrobocopyコマンドで正常に移行ができるのを確認できました。 robocopy コピー元 コピー先 /E /B /MIR /COPY:DATSOU /DCOPY:DAT /XX /NP /IM /XC /XJF /XJD /Z /R:1 /W:1 /LOG:D:\robocopy.log その際、1~3が可能か知りたいです。 1.コピー元でファイルが開かれていた場合、そのファイルだけコピーをスキップするオプションはありますでしょうか? 2.その際、ログにエラーを出力するオプションを知りたいです。 3.1.で開いていたファイルが閉じた際に、コピーを再実行する方法があれば教えて頂きたいです。

  • robocopyのエラー

    robocopy /mir c:\xxxx d:\xxxx robocopyを使ってミラーリングをしているのですが 途中で「パラメータが間違っています」と出て 処理が止まってしまうことがあります。 ある特定のファイルをコピーしようとしたときに出ているとおもうのですが、お分かりの方いらっしゃったらお願いします。 あとこれを回避する方法があれば教えていただけると助かります。 よろしくおねがいします。

  • robocopyコマンド

    以下のコマンドを実行し、logを見ると、エラーのようなものが出ているのですが、 このような場合は、再度、robocopyコマンドを実行すべきでしょうか? >robocopy c:\Windows \FVserver1\bk /MIR /R:0 /W:0 /NP /TEE /LOG:log.txt 新しいファイル 16640 7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0 2014/12/01 20:12:54 エラー 32 (0x00000020) ファイルをコピーしています c:\Windows\System32\7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0 プロセスはファイルにアクセスできません。別のプロセスが使用中です。 -----------------------------------処理結果------------------------------------------- 合計 コピー済み スキップ 不一致 失敗 Extras ディレクトリ: 14422 14412 10 0 0 0 ファイル: 62685 62632 11 0 42 0 バイト: 10.193 g 10.055 g 34.06 m 0 107.62 m 0 時刻: 0:43:04 0:19:53 0:00:00 0:23:10 スキップ(ディレクトリ:12、ファイル:11)や不一致(ファイル:42)のものは、どうすべきなのでしょう? 完全にコピーできていないということでしょうか? 何か、robocopyってやたらと時間がかかって、単純にコピペの方が 楽な気もするのですが、何が良いのでしょう??

  • robocopyで2つのフォルダの同一性をチェック

    こんにちは。 3TBほどのデータをバックアップ目的で外付けから外付けに写しています。 先日、こちらでrobocopyというものの存在を教えていただき、早速愛用しています。 このロボコピーで2つのフォルダが同じ内容であるかチェックするにはどうすればいいのでしょうか? /MIRを実行して、ズラーっと流された場合、 それは内容も同じだとチェックもされていると考えてもいいのでしょうか? 全てのデータが破損なくきちんとコピーされているかを、チェックしたいと思っています。 よろしくお願いします。

  • robocopyでフォルダ自体のコピーは可能ですか

    robocopyのコマンドでデータのコピーをバッチ化したいのですが、フォルダ自体のコピーは出来ないのでしょうか? ログを見ると以下の内容が吐き出されています。 「エラー: コピー先ディレクトリが指定されていません。」 コマンド自体は以下の感じです。 robocopy "C:\Users\***\Desktop\hoge" "G:" 行いたいことは、Cドライブの「hoge」というフォルダを含む以下のデータを、Gドライブにコピーできればと思います。 ですので、hogeというフォルダ自体も含め、その中のデータ全てを移したいのですが上記の通りエラーが表示されてしまいます。 この様な場合には、そういった定義で実現できますでしょうか? お詳しい方いらっしゃいましたら、アドバイスいただけないでしょうか。 よろしくお願いします。

  • robocopyについて

    robocopyについて バッチコマンド robocopyについてです。 上記コマンドを用いて2008サーバーでバッチを作成したいのです。 条件は以下の通りでファイルをコピーするバッチの作成方法を教えてください。 コピー先にファイルがある場合は上書きメッセージを出さずに実行できるようにしたいです。 また、robocopyはcopyコマンドよりもコピーが早いとも聞いたことがあります。 そのへんも教えていただけるとすごく助かります。 コピー元 sever1\folder1\folder2\aaa.txt コピー先 sever2\folder13\folder4\aaa.txt どなたか詳しい方よろしくご教示願います。

  • 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\ アクセスが拒否されました。

  • robocopy後にメール送信させたい

    Windowsのタスクで、バッチプログラムを使ってフォルダのミラーリングをして、最後に終了メールを送信させたいと思っています。バッチプログラムのみで対応できるとありがたいのですが、可能であれば、コードを教えてください。 希望するイメージは、Windows7で動くもので、 「robocopy "コピー元フォルダ" "コピー先フォルダ" /MIR」 このあとに、メールを送信したい。 「送信者、送信先、件名、本文」 このようにできることです。 よろしくお願いします。