コマンドプロンプト講座です。
前回はバッチファイル入門ということで簡単な説明をしました。
今回は実際に簡単なバッチファイルを作ってみます。
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コマンド は不要ですが)。
色々試してみると面白いですよ。