Windows8 の robocopy の DCOPY オプションについて

お世話になります。

 

Windows 7 ですと、robocopy のヘルプでは、/DCOPY には T オプションしかありません。

Windows 8 ですと、/DCOPY には D、A、T の3つのオプションが指定可能になっています。

ということは、Win 7 時代に作ったバッチファイルで、/DCOPY:T と書いてあるものがあるとすると、これを Win8 で実行した場合、D と A はコピーされないと解釈できます。

が、実際には、Win 8 で /DCOPY:T でディレクトリをコピーした場合にも、属性はコピーされていました。

あと、D オプションが意味する「ディレクトリのデータ」というのが何のことなのか、よくわかりませんが…。

 

属性がコピーされるのは、(Win8 から新設された /NODCOPY をつけない限り)robocopy の既定の挙動であるように思えます。

だとしたら /DCOPY:A って何なのでしょうか。

# あと、ついでに /DCOPY:D も…

 

よろしくお願いします。

…という質問をした直後で何ですが、だいたい解決の道筋が見えてきています。

今、/DCOPY:D とは何ぞや? を検証中です。しばらくお待ちください…

この回答は 1 人の役に立ちました

·

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

まだ調査中なのですが、時間がかかりそうなので、いったん〆ます。

 

このようなKBがありました。

http://support.microsoft.com/kb/2646535

 

robocopy のオプションはバージョンアップによって増えてきており、

  • Windows Server 2003 Resource Kit Tools に含まれるものでは /DCOPY オプションは無し。
  • Windows Vista / 7 世代では /DCOPY:T のみ。
  • Windows 8 世代からは /DCOPY:DAT が使用可能。

となっています。

 

で、/DCOPY を指定しない場合の既定のコピー動作はどうかと言えば、

  • Windows Vista 世代以前では /DCOPY:A 相当
  • Windows 7 世代以降では /DCOPY:DA 相当

となっています。

 

つまり、Windows 8 世代において、

  • Resource Kit Tools の動作を再現したい場合は /DCOPY:A
  • Windows Vista 世代の動作を再現したい場合は /DCOPY:A ないしは /DCOPY:AT

を使用するということになります。

 

では /DCOPY:D とは何かという話ですが、どうやらこれは、ディレクトリの副次ストリームをコピーするかどうかを決めるフラグのようです。

副次ストリームには、Internet Explorer で使用される ZoneId をはじめとした情報が格納される代替データストリームや、ファイルのセキュリティ情報、リパース ポイント(シンボリック リンク等)の情報、POSIX 互換機能のための拡張属性などが入っているようです。

 

http://msdn.microsoft.com/en-us/library/windows/desktop/aa362667(v=vs.85).aspx

この回答は 7 人の役に立ちました

·

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

αετος さん、こんにちは。
マイクロソフト コミュニティへの投稿ありがとうございます。

こちらでもrobocopy コマンドのヘルプを確認してみたのですが、確かに Windows 8 では /DCOPY オプションのコピー フラグは D, A, T が指定できるのですね。

詳しい調査内容を共有していただきまして、ありがとうございます。
他にも分かったことなどがあれば、追加で書き込んでみてくださいね。

-------------------
返信が問題解決に役立った場合は、回答済みとしてマークしてください。
回答済みとしてマークするには、[この回答で問題は解決しましたか?] の [はい] 、または [回答としてマークする] をクリックします。
問題が未解決の場合や引き続きアドバイスを求める場合は、[返信] をクリックして文章を送信してください。

近藤 茂 – Microsoft Support

この回答は 1 人の役に立ちました

·

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

 
 

質問情報


最終更新日 2020年7月13日 表示 14,356 適用先: