n-Archives.net

Robocopyでコピー先フォルダが非表示になる

目次

Robocopyでコピーするとコピー先のフォルダが消える

Robocopyでコピーをした際、コピー処理はちゃんと実行されているのに、コピー先フォルダが見えない、という経験ありませんか?

コマンドプロンプトでRobocopyを実行し、コピー処理がちゃんと実行されている様子がログからわかるのに、コピー終了後いざフォルダを見に行こうとすると、コピー先フォルダが存在しない(エクスプローラで表示されていない)という事象です。不思議なことに、コピー先フォルダのパスを直接エクスプローラに入力するとコピーされたフォルダの中身がちゃんと表示されます。

 

フォルダが消える原因

この事象は、「NTFSドライブのルートフォルダ」を「(ルート以外の)フォルダ」にコピーした場合に起こります。例えば、以下のようなコマンドを実行した場合です。

robocopy d:\ z:\backup\d-drive /mir /dcopy:dat

 

NTFSの仕様上、ドライブのルートディレクトリには、「隠し属性」と「システム属性」がついているのですが、robocopyはそれを忠実にコピー先フォルダにコピーしてしまうのです。そのため、コピー先のフォルダが隠しフォルダ&システムフォルダになってしまい、エクスプローラのデフォルト設定では、非表示になってしまうのです。この動作は、NTFS、Robocopyの仕様ということなので、正常な動作ということだそうです。

 

コピー元がネットワークドライブだった場合も、そのフォルダがNTFSのルートフォルダであった場合、同じ事象が発生します。例えば、以下のrobocopyコマンドで、\\server\share がNTFSのルートフォルダであった場合、コピー先フォルダは隠し&システムフォルダになってしまいます。

robocopy \\server\share z:\backup\share /mir /dcopy:dat

 

なお、コピー元が NTFSでない場合(FAT等)は、コピー先フォルダに隠し属性、システム属性はつきません。

 

コピー先フォルダを通常のフォルダにする方法

コピー先フォルダは、バックアップコピーであれば、隠し属性、システム属性を付けておく必要はありませんので、通常のフォルダに戻しておいたほうが良いです。

隠し属性、システム属性を削除し、通常のフォルダにするためには、attribコマンドを使います。robocopyコマンド実行後、attribコマンドを実行します。

robocopy d:\ z:\backup\d-drive /mir /dcopy:dat
attrib -s -h z:\backup\d-drive

-s, -h はそれぞれシステム属性、隠し属性を削除する設定です。隠し属性、システム属性両方ついている場合、attribコマンドは、-s のみ、または -h のみでは実行できませんので、両方同時に指定して実行してください。ファイル名にスペースを含む場合は "~"でくくってください。

コマンドから実行するしかないので、上記のように、robocopyコマンドに続けて実行するようバッチファイルに記述しておくのが良いと思います。

 

RoboSyncで隠し属性・システム属性の削除機能を使ってみる

RobocopyのGUIツール RoboSyncでは、設定項目にチェックを入れるだけで、robocopyコマンド実行直後に、attrib コマンドを実行させ、コピー先フォルダの隠し属性とシステム属性を削除することができるようになっています。

RoboSyncのコピー項目設定画面で、コピー元フォルダがルートフォルダであった場合、付けておいたほうが良い設定項目が赤くハイライトされます。

「コピー元が~ "attrib -s -h"を実行する」 の項目をチェックします。(ついでに、"System Volume Information", "$RECYCLE.BIN" フォルダを除外する項目にもチェックを付けておきます。)

すると、robocopy実行直後に attrib コマンドが実行コマンドが実行されるよう設定されます。

この attrib コマンドを実行する設定は、RoboSyncで生成するバッチファイルにも含まれますので、バッチファイルの中で Robocopyコマンドと一緒に実行されます。

 

参考記事

attrib コマンドのオプション指定方法について記事にしています。

 



Related Articles

 

この記事へのコメント

    2020-09-23 18:15:01
拍手!困ってました…

コメントをお送りください
お名前:
コメント:
コメントの公開:



管理者より個人的に返信をご希望の方は、コメント中に必ずメールアドレスを記載してください。記載がないと返信できませんのでご注意ください。

If you want personal response from the author, please do not forget to write your email address in the comment. Otherwise, the author can not reply.

投稿されたコメントは手動で処理されるため、記事として登録されるまで1日程度かかります。

Submitted comments will be processed manually. So, please understand it will take about a day to publish your comment.