次の方法で共有


xcopy

サブディレクトリを含むファイルとディレクトリをコピーします。

このコマンドの使用方法の例については、「 例」を参照してください。

Syntax

xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j] [/compress]

Parameters

Parameter Description
<源> Required. コピーするファイルの場所と名前を指定します。 このパラメーターには、ドライブまたはパスを含める必要があります。
[<目的地>] コピーするファイルのコピー先を指定します。 このパラメーターには、ドライブ文字とコロン、ディレクトリ名、ファイル名、またはこれらの組み合わせを含めることができます。
/w 次のメッセージを表示し、応答を待ってからファイルのコピーを開始します:
キーを押してファイルのコピーを開始します。
/p 各コピー先ファイルを作成するかどうかを確認するメッセージが表示されます。
/c Ignores errors.
/v コピー先ファイルに書き込まれる各ファイルを検証して、コピー先ファイルがソース ファイルと同じであることを確認します。
/q xcopy メッセージの表示を抑制します。
/f コピー中のソース ファイル名とコピー先ファイル名を表示します。
/l コピーするが、ファイルをアクティブにコピーしないファイルの一覧を生成します。
/g 復号化された 宛先 ファイルが暗号化をサポートしていない場合に作成します。
/d [:MM-DD-YYYY] 指定した日付以降に変更されたソース ファイルのみをコピーします。 MM-DD-YYYY 値を含めない場合、xcopy は既存の移行先ファイルよりも新しいすべてのソース ファイルをコピーします。 このコマンド ライン オプションを使用すると、変更されたファイルを更新できます。
/u 宛先にのみ存在するファイルをソースからコピーします。
/i source がディレクトリであるか、ワイルドカードが含まれており、destination が存在しない場合、xcopy destination がディレクトリ名を指定し、新しいディレクトリを作成すると想定します。 次に、 xcopy 指定したすべてのファイルを新しいディレクトリにコピーします。 デフォルトでは、xcopy宛先がファイルかディレクトリかを指定するように求められます。
/s ディレクトリとサブディレクトリが空でない限り、コピーします。 /s を省略すると、xcopy は 1 つのディレクトリ内で機能します。
/e 空の場合でも、すべてのサブディレクトリをコピーします。 /e コマンドラインオプションと /s コマンドラインオプションを共に使用します。
/t サブディレクトリ構造 (つまりツリー) のみをコピーし、ファイルはコピーしません。 空のディレクトリをコピーするには、 /e コマンド ライン オプションを含める必要があります。
/k ファイルをコピーし、ソース ファイルに存在する場合は、宛先ファイルの読み取り専用属性を保持します。 既定では、 xcopy は読み取り専用属性を削除します。
/r 読み取り専用ファイルをコピーします。
/h 非表示のファイル属性とシステム ファイル属性を持つファイルをコピーします。 既定では、 xcopy は非表示またはシステム ファイルをコピーしません
/a アーカイブファイル属性が設定されている ソース ファイルのみをコピーします。 /a は、ソースファイルのアーカイブファイル属性を変更しません。 attrib を使用してアーカイブ・ファイル属性を設定する方法については、関連リンクを参照してください。
/m アーカイブ ファイル属性が設定されている ソース ファイルをコピーします。 /a とは異なり、/m はソースで指定されたファイルのアーカイブ ファイル属性をオフにします。 attrib を使用してアーカイブ・ファイル属性を設定する方法については、関連リンクを参照してください。
/n NTFS の短いファイル名またはディレクトリ名を使用してコピーを作成します。 /n は、NTFS ボリュームから FAT ボリュームにファイルまたはディレクトリをコピーする場合、または ターゲット ファイル システムで FAT ファイル システムの名前付け規則 (つまり、8.3 文字) が必要な場合に必要です。 宛先ファイルシステムは、FATまたはNTFSです。
/o ファイルの所有権と随意アクセス制御リスト (DACL) 情報をコピーします。
/x ファイル監査設定とシステム アクセス制御リスト (SACL) 情報をコピーします ( /o を意味します)。
/exclude:FileName1[+[FileName2]][+[FileName3]( )] ファイルの一覧を指定します。 少なくとも 1 つのファイルを指定する必要があります。 各ファイルには、ファイル内の個別の行の各文字列を含む検索文字列が含まれています。 いずれかの文字列がコピーするファイルの絶対パスの一部と一致する場合、そのファイルはコピー対象から除外されます。 たとえば、文字列 obj を指定すると、 ディレクトリ obj の下にあるすべてのファイル、または拡張子 が .obj のすべてのファイルが除外されます。
/y 既存のコピー先ファイルを上書きすることを確認するメッセージが表示されないようにします。
/-y 既存のコピー先ファイルを上書きすることを確認するメッセージが表示されます。
/z 再起動可能モードでネットワーク経由でコピーします。
/b ファイルの代わりにシンボリック リンクをコピーします。 このパラメーターは Windows Vista® で導入されました。
/j バッファリングせずにファイルをコピーします。 非常に大きなファイルに推奨されます。 このパラメーターは、Windows Server 2008 R2 で追加されました。
/compress 必要に応じて、ファイル転送中にネットワーク圧縮を要求します。
/[-]sparse コピー処理中におけるファイルのスパース状態の保持を有効または無効にします。 両方のパラメーターが指定されている場合、 /-sparse/sparse をオーバーライドします。
/noclone 最適化としてのブロック複製を試行しません。
/? コマンド プロンプトにヘルプを表示します。

Remarks

  • Using /z

    コピー フェーズ中に接続が失われた場合 (たとえば、サーバーがオフラインになると接続が切断された場合)、接続を再確立した後に再開されます。 /z には、各ファイルに対して完了したコピー操作の割合も表示されます。

  • COPYCMD 環境変数で /y を使用します。

    COPYCMD 環境変数で /y を使用できます。 このコマンドは、コマンド ラインで /-y を使用してオーバーライドできます。 既定では、上書きを求められます。

  • 暗号化されたファイルのコピー

    暗号化されたファイルを EFS をサポートしていないボリュームにコピーすると、エラーが発生します。 最初にファイルを復号化するか、EFS をサポートするボリュームにファイルをコピーします。

  • Appending files

    ファイルを追加するには、変換先に 1 つのファイルを指定しますが、ソースには複数のファイルを指定します (つまり、ワイルドカードまたは file1+file2+file3 形式を使用)。

  • 宛先のデフォルト値

    宛先を省略すると、xcopy コマンドによってファイルが現在のディレクトリにコピーされます。

  • 宛先がファイルかディレクトリかを指定する

    destination に既存のディレクトリが含まれておらず、円記号 () で終わっていない場合は、次のメッセージが表示されます。

    Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
    

    ファイルまたはファイルをファイルにコピーする場合は、F キーを押します。 ファイルまたはファイルをディレクトリにコピーする場合は、D キーを押します。

    このメッセージは、 /i コマンド行オプションを使用して抑制できます。これにより、ソースが複数のファイルまたはディレクトリである場合、宛先がディレクトリであると xcopy 想定されます。

  • xcopyコマンドを使用して宛先ファイルのアーカイブ属性を設定する

    xcopy コマンドは、この属性がソース ファイルに設定されたかどうかにかかわらず、アーカイブ属性が設定されたファイルを作成します。 ファイル属性と 属性の詳細については、「 関連リンク」を参照してください。

  • xcopydiskcopy の比較

    サブディレクトリにファイルを含むディスクがあり、別の形式のディスクにコピーする場合は、xcopyの代わりに diskcopy コマンドを使用します。 diskcopy コマンドはトラックごとにディスク をコピーするため、ソース ディスクとコピー先ディスクの形式は同じである必要があります。 xcopy コマンドには、この要件はありません。 ディスク イメージの完全なコピーが必要な場合を除き、 xcopy を使用します。

  • メモリ不足エラー

    ファイル名のパスが 255 文字を超えるファイルまたはフォルダーをコピーするために xcopy を実行すると、"メモリ不足" エラーが発生する可能性があります。

  • の終了コード xcopy

    xcopyによって返された終了コードを処理するには、バッチ・プログラムの if コマンド行で ErrorLevel パラメーターを使用します。 if を使用して終了コードを処理するバッチ・プログラムの例については、関連リンクを参照してください。 次の表に、各終了コードと説明を示します。

    Exit code Description
    0 エラーなしでファイルがコピーされました。
    1 コピーするファイルが見つかりませんでした。
    2 ユーザーが Ctrl キーを押しながら C キーを押して、 xcopyを終了しました。
    4 初期化エラーが発生しました。 メモリまたはディスク領域が不足しているか、コマンド ラインに無効なドライブ名または無効な構文を入力しました。
    5 ディスク書き込みエラーが発生しました。

Examples

1. すべてのファイルとサブディレクトリ (空のサブディレクトリを含む) をドライブ A からドライブ B にコピーするには、次のように入力します。

xcopy a: b: /s /e

2. 前の例でシステムファイルまたは隠しファイルを含めるには、 次のように /h コマンドラインオプションを追加します。

xcopy a: b: /s /e /h

3. \Reports ディレクトリ内のファイルを、1993 年 12 月 29 日以降に変更された \Rawdata ディレクトリ内のファイルで更新するには、次のように入力します。

xcopy \rawdata \reports /d:12-29-1993

4. 前の例の \Reports に存在するすべてのファイルを日付に関係なく更新するには、次のように入力します。

xcopy \rawdata \reports /u

5. 前のコマンドでコピーするファイルのリストを取得するには (つまり、実際にファイルをコピーせずに)、次のように入力します。

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

xcopy.out ファイルには、コピーされるすべてのファイルが一覧表示されます。

6. \Customer ディレクトリとすべてのサブディレクトリをネットワーク ドライブ H: のディレクトリ \\Public\Address にコピーし、読み取り専用属性を保持し、H: に新しいファイルが作成されたときにプロンプトを表示するには、次のように入力します。

xcopy \customer h:\public\address /s /e /k /p

7. 前のコマンドを発行するには、\Address ディレクトリが存在しない場合は xcopy が作成されることを確認し、新しいディレクトリを作成するときに表示されるメッセージを抑制して、 次のように /i コマンドラインオプションを追加します。

xcopy \customer h:\public\address /s /e /k /p /i

8.xcopy 操作を実行するバッチプログラムを作成し、エラーが発生した場合にバッチ if コマンドを使用して終了コードを処理できます。 たとえば、次のバッチ プログラムでは、 xcopy のソースパラメーターと宛先パラメーターに置き換え可能なパラメーターが使用されます。

@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit

上記のバッチ プログラムを使用して、C:\Prgmcode ディレクトリとそのサブディレクトリ内のすべてのファイルを B ドライブにコピーするには、次のように入力します。

copyit c:\prgmcode b:

コマンドインタプリタは、%1C:\Prgmcode に、%2B: に置き換え、コマンドラインオプションを /e および /sxcopyを使用します。 xcopyエラーを検出すると、バッチ・プログラムは出口コードを読み取り、適切な IF ERRORLEVEL ステートメントに示されたラベルに移動し、適切なメッセージを表示してバッチ・プログラムを終了します。

9. この例では、空でないすべてのディレクトリと、アスタリスク記号の後に関連するファイル拡張子を持つファイルをコピーします。

xcopy .\toc*.yml ..\..\Copy-To\ /S /Y

rem Output example.
rem  .\d1\toc.yml
rem  .\d1\d12\toc.yml
rem  .\d2\toc.yml
rem  3 File(s) copied

前の例では、この特定のソースパラメータ値 .\toc*.yml は、2 つのパス文字 .\ が削除された場合でも、同じ 3 つのファイルをコピーします。 ただし、アスタリスク ワイルドカードが source パラメーターから削除され、単に .\toc.yml になると、ファイルはコピーされません。