昔からパソコンを使っている人には、お馴染みですが、
Windowsには、batファイルというOSコマンドを実行する機能があり、数行のコマンドをbatファイルに書くだけで、PC作業が効率化できます。
私の場合、ノートPCで作業中のJobフォルダから、外付けハードディスクに、更新ファイルのみバックアップする際、
次のコマンドを記載したBackUp.batというファイルと
set srcPath=Job
set dstPath=F:\Jobxcopy %srcPath% %dstPath% /s /d /v /i /y /exclude:exclude.txt
pause
バックアップ対象外のファイルを記載したexclude.txtというファイルを
*.tmp
*.lnk
次のようにJobフォルダと同じ階層に配置して、
\Job
BackUp.bat
exclude.txt
BackUp.batを実行し、更新ファイルのみ外付ハードディスクにバックアップしています。
例えば、1回目の実行で、次のデータをコピーした後、
/Job/aaa.txt
/Job/bbb.txt
/Job/bbb.txt
/Job/excel/aaa.xlsx
/Job/excel/bbb.xlsx
Job/bbb.txtの内容を更新して、BackUp.batを再実行すると
/Job/bbb.txt
のみが、外付ハードディスクにコピーされます。
ここで使用しているxcopyコマンドのオプションの紹介
/s ファイルが存在する場合のみディレクトリごとコピー
/d コピー先に同名のファイルが存在する場合に更新日が新しいファイルのみコピー
/v ファイルの内容が正しいか検査
/i コピー先のディレクトリが存在しない場合は新規にディレクトリを作成
/y 同名のファイルが存在する場合、上書きの確認を行わない
/exclude: 指定したファイルをコピー対象から外す
batファイルとPowerShellの使い分け
近い将来、batファイルのサポートは終了して、Windows7から登場したより高機能なPowerShellという仕組みが主流になっていきますが、個人的には、
- 手軽なもの:batファイル
- 複雑なもの:PowerShell
というような使い分けをしています。
(個人的に、どっちで書いた方が、楽なのかの判断基準ですが・・・)
無理にとはいいませんが、両方使えるようにしていた方が、何かと便利です。
今後、誰かが書いたbatファイルをPowerShellに書き換えるような事も十分ありえますし・・・
※ここで紹介した記事の内容ついては、その責任を負いかねますので、十分内容を吟味した上、各自の自己責任でお願いします。