※この記事は「2021年4月11日」に更新しました。
コマンドプロンプト講座です。
前回は、バッチファイル入門ということで、簡単な解説をしました。
今回は、フォルダ内のファイルをバックアップする方法について、紹介します。
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 には、タスクスケジューラというものがあります。
バッチファイルと組み合わせて使えば、時間を指定して簡単に作業を自動化できます(自動化する場合 pauseコマンドは不要です)。
色々試してみると面白いですよ。