【コマンドプロンプト講座】フォルダ内のファイルをバックアップする

フォルダ内のファイルをバックアップする

※この記事は「2021年4月11日」に更新しました。

コマンドプロンプト講座です。

前回は、バッチファイル入門ということで、簡単な解説をしました。

バッチファイル入門

【コマンドプロンプト講座】バッチファイル入門

2019年1月25日

今回は、フォルダ内のファイルをバックアップする方法について、紹介します。

GUI だと面倒で CUI だと簡単というのが、フォルダのバックアップです。

ぱそた
SE、Web制作、販売を経験した管理人が解説します。



xcopyコマンド【バックアップで使える】

xcopyコマンドは、サブディレクトリまで含めてファイルをコピーすることができます。

以下のような使い方をします。

xcopy コピー元 コピー先 [オプション]

xcopyコマンドを使う場合、覚えておきたいオプションがあるので紹介します。

/sオプション
空でなければサブディレクトリもコピーする
/eオプション
空であってもサブディレクトリをコピーする
/hオプション
隠しファイルもコピーする
/cオプション
エラーを無視してコピーする
/yオプション
コピー先に既存ファイルがある場合でも確認メッセージなしで上書きコピーする
/rオプション
読み取り専用ファイルもコピーする
/dオプション
コピー先に既存ファイルがある場合は日付が新しいときだけ上書きコピーする

他にも色々ありますが、バックアップで指定する場合はこのくらい理解しておけば良いかと思います(別に覚えなくても良いです)。

また /excludeオプション を使えば、コピーしたくないファイルを除外することもできます。

robocopyコマンド【番外編】

今回は xcopyコマンド を使ったバックアップを紹介しますが、もっと高機能なコピーコマンドがあります。

robocopyコマンド です。

ここでは詳しく説明しませんが、バックアップに関してはこちらの方が優秀です。

しかし、オプションが多く、正しく理解して使わないと誤ってデータを削除したとき危険です。

簡単にミラーリングできる素晴らしいコマンドです。

フォルダ内のファイルをバックアップするバッチファイル

それでは、早速バッチファイルを作っていきます。

今回は、簡単にするために、あらかじめバックアップ先フォルダを作成しておきます。

下記は、私が作成した backup.bat というバッチファイルです。

@echo off
rem フォルダ内のファイルをバックアップするバッチファイルです。
echo コピー元は、C:\Users\Owner\Documents\ブログネタ
echo コピー先は、H:\backup
echo ログは、H:\log\log.txt
echo 今からバックアップを行います。
pause
xcopy C:\Users\Owner\Documents\ブログネタ H:\backup /e /h /c /y /r /d >> H:\log\log.txt

不要な部分もあるかと思いますが、練習なんで気にせず作っていきます。

ちなみにパスの部分は、キーボード入力するとタイプミスする可能性があります。

対象のフォルダやファイルをコマンドプロンプトにドラック&ドロップするとフルパスが入力されます。

コマンドプロンプト

ちょっと特殊な使い方ですが、覚えておくと便利です。

ちなみにログについては、xcopyコマンドをコマンドプロンプトで実行したときの結果をリダイレクトでテキストに残しています。

バックアップを実行するたびにファイルの末尾に追加する形で実行結果が保存されていきます。

日付がないので、もっとログを見やすくすることもできそうです。

echo %date% >> H:\log\log.txt

これで日付を書き込みます。

echo %time% >> H:\log\log.txt

これで時刻を書き込むと、いつ実行したかがわかります。

最後に

いかがでしょうか。

本当にシンプルなバッチファイルですが、これを使えば簡単にバックアップできます。

今回は使いませんでしたが、Windows には、タスクスケジューラというものがあります。

タスクスケジューラの使い方

【コマンドプロンプト講座】タスクスケジューラの使い方

2019年1月27日

バッチファイルと組み合わせて使えば、時間を指定して簡単に作業を自動化できます(自動化する場合 pauseコマンドは不要です)。

色々試してみると面白いですよ。