. Xcopy (ファイルのコピー拡張版) - DOS/コマンドプロンプト コマンド一覧
Xcopy (ファイルのコピー拡張版) - DOS/コマンドプロンプト コマンド一覧
Xcopy (ファイルのコピー拡張版) - DOS/コマンドプロンプト コマンド一覧

Xcopy - DOS/コマンドプロンプト コマンド一覧

Xcopyではこのアーカイブ属性を考慮したコピー操作を行うことが可能であり、/A オプションや /M オプションの利用がこれに該当します。/A オプションおよび /M オプションはアーカイブ属性のついたファイルのみコピー先にコピーするという効果を持つため、実質的に「更新されたファイルのみをコピーする」といった操作を行うことができます。なお、/A オプションと /M オプションはともに「アーカイブ属性の付いたファイルのみ」をコピーする効果を持ちますが、/M オプションはコピーのアーカイブ属性を解除するという効果があり、これによって「バックアップ済みである」といったことをマークすることができます。

ファイルの更新

[Windows 95 以降] 「/U」オプションを付加すると、Xcopyを使って「ファイルの更新コピー」を行うことができます。具体的には、「コピー先に同じファイルがない、またはコピー先ファイルがコピー元より(更新日時が)古い場合にファイルのコピーが行われる」という動作になります。主にバックアップやファイル転送の操作において、コピー先が何らかの理由で更新されている状態になったものを誤って上書きするのを防ぐ目的で使うことができます。

終了コード

サンプル1 xcopy /Y C:\Documents\hoge.txt D:\Backup\ サンプル2 xcopy /Y /Q /S /E E:\My\Directory\*.* F:\Foo\Bar\Directory\

ディレクトリ「E:\My\Directory」とその中身(ファイルおよびサブディレクトリ)を、ディレクトリ「F:\Foo\Bar\Directory」まるごとコピーします。「/S /E」があるため、ディレクトリ構造も含めてコピーされます。(/Y オプションがあるので中に含まれるファイルが一部存在する場合は無条件で上書きを行います。) また、「/Q」オプションによりコピー時にファイル名を画面に出力しません。

サンプル3 xcopy /A /S /E /Y C:\MyDoc\*.* D:\Backup\MyDoc\ サンプル4 xcopy /Y /Q /S /E /M E:\My\Directory\*.* F:\Foo\Bar\ サンプル5 echo F| xcopy /M file1.txt file2.txt

file1.txt に「アーカイブ属性」が付いている場合、file1.txt をコピーして file2.txt を作成します。、「file2.txt は受け側のファイル名ですか、ディレクトリ名ですか(F=ファイル、D=ディレクトリ)?」などの入力待ちが表示されますが、自動的に「F」を入力させるためにEchoコマンドを使用しています。

なお、コマンド実行後は file1.txt のアーカイブ属性は解除されます(file2.txt のアーカイブ属性は残ります)。

※ 単体のファイルをコピーする場合は通常Copyコマンドを使用します。 ※ 「echo F」ではなく「echo D」とすると、「file2.txt」というディレクトリが作成され、その中に file1.txt がコピーされます。 ※ file2.txtが存在する場合、「file2.txt は受け側のファイル名ですか、ディレクトリ名ですか(F=ファイル、D=ディレクトリ)?」ではなく「file2.txt を上書きしますか (Yes/No/All)?」といった入力待ちが表示される(のに対し与える入力が「F」のみとなる)ため、上記のコマンドは失敗します。強制的に上書きを行う場合は /Y スイッチを指定します。

サンプル6 xcopy /U /S /E /Y Z:\Data\*.* E:\Current\Data\

[Windows 95以降] 「Z:\Data」内のすべてのファイルを「E:\Current\Data」内にコピーしますが、コピーしようとするファイルがコピー先に存在し、コピー先のファイルが新しい場合はコピーしません。ファイルを更新するときなどに使います。

サンプル7 (バッチファイル) @echo off setlocal enableextension for /F "tokens=1,2,* delims=:" %%i in ("%TIME%") do set MYTIME=%%i%%j set DIR_NAME=E:\Backup\src_%DATE:/=%_%MYTIME% if not exist "%DIR_NAME%" md "%DIR_NAME%" xcopy /S /E /Y /Q /EXCLUDE:"E:\Backup\excludes.txt" D:\Develop\src\*.* "%DIR_NAME%\"

[Windows NT系] [拡張構文] 「E:\Backup」内に日付と時刻が名前に入ったディレクトリを作成し、その中に、「D:\Develop\src」内にあるファイルのうち「E:\Backup\excludes.txt」に記述されたパターンに一致するファイルを除くすべてのファイルをコピーします。このような記述のバッチファイルを作ることで、その時点におけるバックアップを簡単に作成することができます。

関連項目

  • Xcopyでフォルダーを丸ごと複製・バックアップ (Windowsコマンド実用例) - XcopyはRobocopyよりシンプルな構文でディレクトリコピーできます。Xcopyを使ってバックアップを行う例を紹介しています。
  • Copyコマンド - シンプルにファイルをコピーしたいときに使います。
  • Robocopyコマンド - より複雑な条件でコピーしたいときに使います。
  • Rmdir(Rd)コマンド - ディレクトリを削除したいときに使います。
  • Deltreeコマンド - MS-DOSやWindows95/98/Meでディレクトリを削除したいときに使います。
  • Attribコマンド - アーカイブ属性はAttribコマンドで確認・変更できます。
  • ワイルドカード(* や ?) - Xcopyコマンドはワイルドカードを使用できます。
📎📎📎📎📎📎📎📎📎📎