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

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

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

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

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

2019.01.25

今回は実際に簡単なバッチファイルを作ってみます。

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

それでは見ていきましょう。



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.01.27

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

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