2011年1月6日木曜日

xcopyでフォルダごとコピー

コマンドラインでのフォルダコピーにはWindows VISTA以降であればrobocopyを使うのが便利だが、XP以前ではxcopyしか標準では使えないので、まだまだ使う機会が多い。

やりたいこと
フォルダ srcdir の内容全部を、フォルダ destdir にコピーする。
フォルダ destdir はまだ存在しない。

コマンド
xcopy /i /s /e /h srcdir destdir


ここで指定したオプションは以下のとおり、xcopy /? で出力される説明だとわかりにくいがおおむね以下のとおりである。

  • /i : コピー先フォルダがなければ作る
  • /s,/e : セットで使うとフォルダツリー全体をコピーする
  • /h : 隠しファイル(.svnなど)もコピーする



自分が使うパターンはこれしか無いのだが、つけるオプションを忘れがちなのでここにメモ。


おまけ robocopy編
最初にも書いたが、Windows VISTA以降であればrobocopyを使うのが便利だと思う。個人的には次の2つのパターンをよく使う。どちらもsrcdirからdestdirにフォルダを丸ごとコピーする。オプションはxcopyと似ているが若干異なる。

(1)destdirに重ね書きする
srcdirにあってdestdirにもあるファイルやフォルダは上書き、srcdirに無くてdestdirにあるものは残る。
robocopy /s /e srcdir destdir


(2)srcdirとdestdirを同期
destdirの内容をsrcdirと同一にする。srcdirにあってdestdirにもあるファイルやフォルダは上書き、srcdirに無くてdestdirにあるものは消す。rmdirとxcopyを使えば同等のことはできるが、robocopyは差分でコピーするので速い。
robocopy /mir srcdir destdir

0 件のコメント:

コメントを投稿