● 各機能・ソフトの概要:バッチファイル(Windowsの標準機能)~「パソコンでの自動化」について

目次
● 各機能・ソフトの概要:バッチファイル(Windowsの標準機能)~「パソコンでの自動化」について
 §1 使い方
 §2 ポイント
 §3 メリット・デメリット
 §4 VBAやUWSCの中で、バッチファイルを実行する方法
※Backcpaceキー、Shift+TABキー、もしくは、Homeキー、Homeキー+TAB数回、を押すと、目次付近に戻れます。

「バッチファイル」はコマンドプロンプトで行う1行命令を複数集めて記述し、一括実行できるようにしたものです。(”コマンドプロンプトを土台としたプログラム”…という感じです。)

※コマンドプロンプトとバッチファイルはメンテナンス上かなり重要な機能ですので、パソコンメンテやデータ管理のようなお仕事をしたい方は必須です。
  
  
例えばお仕事で、

(a)マイドキュメントの「フォルダA」の最新データのみをUSBメモリに上書きコピー

(b)マイドキュメントの「フォルダB」にある10個の最新のテキストファイル(例えば銀行提出用の自動引き落とし用データなど)をすべて結合した上で、USBメモリにコピー

(c)マイドキュメントのマイピクチャの最新データのみをUSBメモリにコピー

(d)デスクトップの「作業中」フォルダの最新データをファイル名に日付と作成時刻を自動的に含めて、USBメモリに世代コピー

ということをしたい場合、を考えてみます。

これらを1日に数回行わなければならない定型業務があるとします。

(a)~(d)は意外と時間のかかる作業です。

この時、もしこれをコマンドプロンプトでやろうと思うと、これらを、いちいち、一行ずつ画面に入力して、1つずつ(Enterキーを叩いて)実行しなければなりません。(この場合だと、おそらく30行分くらいは入力することになると思います。)
それだけでもとても時間がかかってしまいます。
1日に数回もやらないといけないとなると、本当に面倒くさいです。

しかし、「バッチファイル」にこれら、(a)~(d)のすべての命令を記述しておくと、そのファイルを一回ダブルクリックするだけで、(a)~(d)をすべて自動処理してくれます。ダブルクリックした後は席を離れても問題ありません。

バッチファイルはこのような形で時間短縮が図れますので大変便利です。

また、どのパソコン(OS)でも動かせるので、例えばデスクトップのデータをUSBメモリにバックアップするような場合、他のバックアップソフトがインストールされている必要がありません。
2000、XP、Vista、Win7どれでもOKです。
(Win98、95でもほとんど同じ。)

いつも使っているバッチファイル(か、その内容のメモ)さえあれば、また、USBメモリのドライブ名さえあわせることができれば、いつでも、いつもと同じバックアップが可能です。
インターネットに繋がっていない環境でも、とくに何も要らずに、バックアップソフトを何もダウンロードすることなく、自動バックアップ環境が作れます。

これもバッチファイルの良いところです。

※なぜバッチファイルを使ってバックアップするのか? → 普通のバックアップソフトだと「バックアップだけ」しかできませんが、バッチファイルを使うとそれ以外のことも同時にやれるのでそれが便利です。また、必要案バックアップ機能はほとんど揃っています。
  
  
§1 使い方

コマンドプロンプトで打ち込む命令を、テキストファイルに書き、拡張子「.txt」を「.bat」に変更するだけです。
変更時にメッセージが出ますが、かまわずOKします。
あとはそのファイルをダブルクリックすればOKです。

†1 バッチファイル自体を実行させるには?

Startバッチファイル名(フルパス)

でOKです。
  
  
§2 ポイント

・拡張子はbatとなっていますが、その実態は単なるテキストファイルです。
・すべてのバージョンのWindowsで、拡張子「txt」を「bat」に書き換えるだけでこのような自動実行形式のファイルになります。
  
  
§3 メリット・デメリット

★ メリット
・「バッチファイル」は、95、98、2000、XP、Vista、Win7、どのWindowsでも、標準機能として動くので、フリーウェアが要らない場合もある。
・タスク機能やスタートアップ機能、との連携をしやすい。
・XP以降ならパソコンのシャットダウンをする命令もあるので、例えばバックアップが終わったらパソコンが勝手に切れる・・・というバッチファイルも作れる。
・1行書くだけで済むことも少なくない。1行書くだけでも結構色々とやれる。
・「変数」が使えるので、サンプルのように、意外と細かいパソコン制御も可能。
・コマンドプロンプトだけだとあまりメリットがないようなことでも、バッチファイルの形にしたときに、メリットが出ることが少なくない。
一回バッチファイルを作ってしまえば、次回はダブルクリックするだけだから。
・UWSCやExcelVBAなどから呼び出すこともできるので、連携したプログラムが作れる。
(UWSCでもExcelVBAでも、その命令の中で直接、コマンドプロンプトの命令を書くこともできます=バッチファイルと同等のことができます。)

★デメリット
・ある程度のことができるが、もちろん完全ではない。
・一般の方だと、バックアップくらいにか使えないかもしれない。
(兼任社内SEの方や自分でメンテをする方は、ネットワークドライブをON・OFFしたり、LANをON・OFFしたり、再インストール後の共有フォルダを一括自動作成&設定したり、Webサーバの起動/停止、と色々と便利に使えます。)

********
(サンプルのメリット)
・サンプルでは、フォルダ構造丸ごとがバックアップできます。フォルダ構造を気にすることなく、新規ファイルや更新したファイルが自動的にバックアップされます。
・サンプルでは、フォルダかファイルかを聞いてくる場面がありますが、最初だけ。2回目以降は何も聞いてきません。また、書き換えたファイル、新規作成したファイルだけがコピーされるので速いです。
・サンプルのようなアイコンをデスクトップに置いておいてダブルクリックするだけで、いつでも、その時点までのデータをすぐさまバックアップできます。フリーウェアのようにいちいち画面を開く必要がなく、ダブルクリックだけなのでバックアップがしやすいです。
・一般的なバックアップソフトよりも、自由度高く使える場面が意外と少なくない。

(サンプルのデメリット)
・バッチファイルのサンプル(XCOPY)では新規、更新ファイルはよいが、削除したファイルが同様に削除されない。削除したファイルが削除されるようにミラー化したい場合は、Robocopyコマンドを使います。

§4 VBAやUWSCの中で、バッチファイルを実行する方法

例1:VBAの場合(Excel、Access、Word、すべて)

' D:\Data\ フォルダにある、「databack.bat」を実行します。
Dim RetVal
RetVal = Shell("D:\Data\databack.bat", 1)

例2:UWSCの場合

// D:\Data\ フォルダにある、「databack.bat」を実行します。
EXEC("D:\Data\databack.bat")