備忘録

【Windows】ディレクトリ構造(フォルダ)のみコピーする方法

2014年5月31日

Windowsではファイルをコピーするときに、コピー(Ctrl+C)&ペースト(Ctrl+P)で簡単に実行することができます。
それがフォルダのコピーであっても同様に コピー(Ctrl+C)&ペースト(Ctrl+P) で簡単に実行することができます。

では、フォルダ階層のみをコピーしたいときはどうしたらよいでしょうか。
フォルダを コピー(Ctrl+C)&ペースト(Ctrl+P) でコピーしたあと、ファイルを削除する方法や毎回フォルダで作成するのはめんどくさいですよね。

なにかコマンドでないかなと思ったらWindowsのXCOPYコマンドで簡単に空のディレクトリ構造をコピーすることができるようです。

XCOPYとは

ファイルとディレクトリツリーをコピーするコマンドになります。

COPYコマンドとは違うのは特定のファイル・フォルダなどをコピーしたいときに使うコマンドのようです。

ディレクトリ構造(フォルダ)のみコピーする方法

コマンドプロンプトを開き。

XCOPY /T /E 【元のディレクトリ】 【コピー先】

でOKです。元のディレクトリ配下の構造をコピー先に作成できます。

※/Tはディレクトリ構造のみのコピー
 /Eはサブディレクトリもコピーになります。

XCOPYは様々なファイル・フォルダコピーができる。

他にもいろいろ条件をつけてコピーできるようです。
ファイル同期を行いたい場合はrobocopyを使うことになりますが、特定フォルダ・ファイルのコピーはXCOPYのほうが使いやすいかもです。
※robocopyの使い方はこちら

ファイルとディレクトリ ツリーをコピーします。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]
                           [/EXCLUDE:file1[+file2][+file3]...] [/COMPRESS]

  source       コピーするファイル (複数可) を指定します。
  destination  新しいファイルの場所や名前を指定します。
  /A           アーカイブ属性が設定されているファイルのみをコピーし、
               属性は変更しません。
  /M           アーカイブ属性が設定されているファイルのみをコピーし、
               アーカイブ属性を解除します。
  /D:m-d-y     指定された日付以降に変更されたファイルをコピーします。
               日付が指定されなかったときは、コピー元の日付がコピー先の日付より
               新しいファイルだけをコピーします。
  /EXCLUDE:file1[+file2][+file3]...
               文字列を記述したファイルのリストを指定します。
               文字列は、ファイル内で 1 行に 1 つずつ記述します。いずれかの文字列が
               コピー対象ファイルの絶対パスの任意の部分と一致した場合、
               そのファイルはコピー対象から除外されます。たとえば、
               \obj\ または .obj のような文字列を指定すると、それぞれ、obj ディレクトリの下の
               全ファイルが除外されたり、.odj という拡張子の
               ファイルがすべて除外されたりします。
  /P           コピー先のファイルを作成する前に確認のメッセージを表示します。
  /S           空の場合を除いて、ディレクトリとサブディレクトリをコピーします。
  /E           空の場合も含めて、ディレクトリとサブディレクトリをコピーします。
               "/S /E" と同じ意味です。/T の内容を変更する際にも使用できます。
  /V           コピー先の各ファイルのサイズを検証します。
  /W           コピーを開始する前に、任意のキーを押すことを求めるメッセージを表示します。
  /C           エラーが発生してもコピーを続けます。
  /I           コピー先が存在せず、コピーするファイルが複数の場合、
               コピー先をディレクトリと想定します。
  /Q           コピー中にファイル名を表示しません。
  /F           コピー中にコピー元とコピー先の完全なファイル名を表示します。
  /L           コピーされるファイル名を表示します。
  /G           暗号化をサポートしないコピー先に、暗号化されたファイルをコピー
               することを許可します。
  /H           隠しファイルやシステム ファイルもコピーします。
  /R           読み取り専用ファイルを上書きします。
  /T           ファイルはコピーせずにディレクトリ構造のみを作成します。空の
               ディレクトリまたはサブディレクトリは除きます。/T /E と指定
               すると空のディレクトリやサブディレクトリも作成されます。
  /U           コピー先に既に存在するファイルだけをコピーします。
  /K           属性をコピーします。指定しない場合、読み取り専用属性はリセットされます。
  /N           生成された短い名前を使用してコピーします。
  /O           ファイルの所有権と ACL 情報をコピーします。
  /X           ファイルの監査設定をコピーします (/O を含む)。
  /Y           既存のファイルを上書きする前に確認の
               メッセージを表示しません。
  /-Y          既存のファイルを上書きする前に確認のメッセージを
               表示します。
  /Z           再起動可能モードでネットワーク ファイルをコピーします。
  /B           シンボリック リンクのリンク先ではなく、シンボリック リンク自体をコピーします。
  /J           バッファーされていない I/O を使ってコピーします。サイズが大きいファイルに適しています。
  /COMPRESS    適用可能な場合は、ファイル転送中にネットワーク圧縮を
               要求します。

スイッチ /Y は環境変数 COPYCMD に前もって設定しておくことができます。
この設定は、コマンド ラインの /-Y で上書きすることができます。

-備忘録
-, ,