【Windows】ファイルの作成日や更新日を含めてコピーする方法

Linuxでは作業ファイルに対してバックアップを取るために、作成日や更新日を含めてコピーを取ることがあります。cpコマンドを使って「cp -p [コピー元] [コピー先]」で可能ですが、Windowsのコマンドプロンプトではどうやるのか、いろいろ調べたて試してみました。

cygwinのcpコマンドでは更新日までコピーできない

cygwinとはwindows環境にインストールすることで、LinuxのCUIのような形式でlinuxコマンドをwindows上で使えるようにするアプリです。

cygwinにもcpコマンド有りますが、「cp -p」を使ってコピーを試みたところ、作成日や更新日を含めてコピーすることはできませんでした。

どうやらcpコマンドをたたいていますが、結局裏側でwindowsのCOPYコマンドが実行されているっぽいです。

じゃあ他に方法はないのか。さらに調べたところ1つ方法が見つかりました。
robocopy」を使う方法です。

robocopyを使う

robocopyコマンドは本来、データのバックアップのために使うコマンドであり、ファイル単体には使えず

2つのフォルダの内容を同期させるコマンドなので、コピー対象はフォルダである必要があります。コピー対象のフォルダの中身を丸々タイムスタンプも含めてコピーされます。

robocopyを使う前に、単純なコピーのやり方を結果を見てみましょう。

例1.単純なコピー(COPYコマンド)

C:\Users\user\Desktop\sample>copy sample01.txt sample02.txt
1 個のファイルをコピーしました。

C:\Users\user\Desktop\sample>dir /tc
ドライブ C のボリューム ラベルは Windows です
ボリューム シリアル番号は 88C5-3DE5 です

C:\Users\user\Desktop\sample のディレクトリ

2018/09/03 12:24 <DIR> .
2018/09/03 12:24 <DIR> ..
2018/09/03 12:25 12 sample01.txt
2018/09/03 12:37 12 sample02.txt
2 個のファイル 24 バイト
2 個のディレクトリ 161,810,702,336 バイトの空き領域

 

続いて「robocopy」を使った例です。

例2.robocopyを使った例

例1で作成したsampleフォルダをrobocopyを使ってコピーしてみます。

C:\Users\user\Desktop>robocopy sample\ ./sample02

-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------

開始: 2018年9月3日 12:40:01
コピー元 : C:\Users\user\Desktop\sample\
コピー先 : C:\Users\user\Desktop\sample02\

ファイル: *.*

オプション: *.* /DCOPY:DA /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

新しいディレクトリ 2 C:\Users\user\Desktop\sample\
100% 新しいファイル 12 sample01.txt
100% 新しいファイル 12 sample02.txt

------------------------------------------------------------------------------

合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 1 1 0 0 0 0
ファイル: 2 2 0 0 0 0
バイト: 24 24 0 0 0 0
時刻: 0:00:00 0:00:00 0:00:00 0:00:00


速度: 4800 バイト/秒
速度: 0.274 MB/分
終了: 2018年9月3日 12:40:01


C:\Users\user\Desktop>cd sample02
C:\Users\user\Desktop\sample02>dir /tc

C:\Users\user\Desktop\sample02 のディレクトリ

2018/09/03 12:40 <DIR> .
2018/09/03 12:40 <DIR> ..
2018/09/03 12:25 12 sample01.txt
2018/09/03 12:37 12 sample02.txt
2 個のファイル 24 バイト
2 個のディレクトリ 161,517,121,536 バイトの空き領域

sample02フォルダにはsampleフォルダのファイルが作成日も含めてコピーされているのが分かるかと思います。



投稿日:2018-10-23    更新日:2018-10-23

[スポンサーリンク]

サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]