web-dev-qa-db-ja.com

権限を保持してディレクトリをコピーする

トピックのタイトルを説明するこれKB記事を見つけました。しかし、私の問題は、「xcopy」コマンドを使用するときです。ディレクトリ内のコンテンツを新しい場所にコピーするだけで、Linuxディストリビューションのようにディレクトリ全体をコピーするわけではありません。

例:「xcopyc:\ folder1 d:\ newfolder」と入力した場合;次に、c:\ folder1の内容をd:\ newfolderにコピーしますが、folder1はコピーしません。私はこれをどのように達成するのかというように静かに混乱しています。これについて教えてください。

前もって感謝します。

5
AzkerM

私はついにこれを達成することができました、そしてこれは他の人がそのようなニーズを達成するのを助けるかもしれないと思いました。さて、先に述べたように、私は このKB記事 を参照し、以下のコマンドを使用して、DATAを失うことなく達成しました

ディレクトリ自体をコピーすることはできませんでしたが、許可を失うことなく、ディレクトリ内のすべてのコンテンツをコピーすることができました。だからここに方法があります

まず、ソースディレクトリ内にあるすべてのコンテンツをコピーするためだけにフォルダーを作成し、xcopyを使用して、そのアクセス許可を保持することにより、すべてのファイルとフォルダーをコピーしました。

xcopy c:\source_folder_name e:\destination_folder_name /O /X /E /H /K
  • / E-空のものも含めて、フォルダとサブフォルダをコピーします。
  • / H-非表示ファイルとシステムファイルもコピーします。
  • / K-属性をコピーします。通常、Xcopyは読み取り専用属性をリセットします。
  • / O-ファイルの所有権とACL情報をコピーします。
  • / X-ファイル監査設定をコピーします(/ Oを意味します)。

これは、それ以上の質問なしで実行されます。そして、一度実行すると、コピーされたものとOriginの間にファイル数の違いがあることに気づきました。したがって、ミラーリング中にログファイルを作成して、robocopyを使用してすべてのファイルが適切に配置されていることを確認しました。

コマンドプロンプトパスがC:/であると仮定します。

robocopy c:\source_folder_name e:\destination_folder_name /MIR /LOG:log.txt
  • / MIR-ファイルをミラーリングし、ソースと宛先の間でコピー/変更/削除します。
  • / LOG-プロセスのログファイルを作成します

注:ログファイルは、コマンドプロンプトに表示されるドライブまたはパスの場所に作成されます。例:そのC:/の場合、ログはそこにあります)。

robocopyがその役割を果たしたら、プロパティをチェックして、両方が集計されていることを確認しました。天国はい!集計していたので、ログをチェックして、コピーされなかったファイルを確認しました。私が思ったように、それはちょうどthumbs.dbと省略された他のいくつかのファイルでした。

PS:ミラーリングにrobocopyを使用している場合は、宛先と集計できなかった場合にソースファイルが削除/変更される可能性があるため、注意してください(非常にまれですが、発生する可能性があります)。新しい宛先のファイル数がOriginよりも少なかったため、これを使用しました。また、DATAの損失を避けるために、ソースファイルのバックコピーを用意しました。それ以外は、これらのコマンドはどちらも問題なく実行されます。

お役に立てれば!

11
AzkerM

はい、最良のオプションはファイル名を再度指定することです...例えば。 C:\Inetpubフォルダを別のフォルダまたはドライブにコピーする必要があります。

XCOPY "C:\Inetpub" "C:\DDRIVE\Inetpub" /o /x /e /h /k

Enterキーを押すと、「Inetpubターゲット上のディレクトリ名またはファイル名を指定しますか?」という質問が表示されます。押す F ファイルの場合は D ディレクトリ用。押すことができます D ここに。これにより、新しいディレクトリが作成され、同じ権限を持つすべてのサブフォルダとファイルがソースからコピーされます。

0
Philip T W

唯一の方法は、folder1を再度指定することです。/Iスイッチは、folder1がファイルであるかディレクトリであるかについて愚かな質問をするXCOPYを停止します。/E再帰します。

xcopy /I /E c:\folder1 d:\newfolder\folder1

編集:私は前のKB記事を読んでいなかったので、そこに許可の問題があるかもしれません。それはおそらくポイントを打ち負かします。その場合、ローレンスはポイントを持っているかもしれません。

0
carveone