━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ いざというときに役立つMS−DOS 執筆:速星 千里 第52号(2004.05.22) IE-SPYAD(2) 5626部配信 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <目次> ■ はじめに ● 掲示板メンテナンス(5月30日)のお知らせ ■ IE-SPYAD(2) ● バッチファイル中のコメント ● メニュー画面の仕組み ● バッチファイルの全体構成 ----☆PR☆-------------------------------------------------------------- ハードディスクのトラブルで大切なデータを無くしたことがありませんか? データ復旧のためにプロに修理に出すと、5〜10万円はかかります。 しかし、この修理マニュアルで試してみれば、素人でもわずかな部品代で、 直せるかも知れません。この情報がわずか3,000円なら、試してみる価値は 十分ありますね。 → http://www.akarui-jouhou.com/hddshuuri.htm ---------------------------------------------------------------☆PR☆--- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ はじめに ------------------------------------------------------------------------ 皆さん、こんにちは。速星です。 今回もまた、丸1日遅れの発行になってしまいました。 今回は先週の続きで、セキュリティソフト「IE-SPYAD」に付属のインストール用 バッチファイル「install.bat」の内容と動作を、詳細に検討します。 このバッチファイルは、バッチアプリケーションの典型例ともいえるものです。 すぐに内容を理解することは難しいかと思いますが、これを理解できるようにな れば、多くのバッチファイルが読めるようになるはずです。 バッチファイルやプログラミングに興味のある人は、頑張って読んでみて下さい。 逆にいえば、あまり興味のない方は、無理せず、今号は読み飛ばしていただいた 方がいいかもしれません。 ------------------------------------------------------------------------ ● 掲示板メンテナンス(5月30日)のお知らせ 当メルマガのサポート掲示板のレンタル元「OTD BBS」から、5月30日の日中 は掲示板サービスを一時停止してメンテナンスを行う、との連絡がありました。 一部を以下に引用します。 > ============================================================================ > ■■電源設備、回線設備メンテナンス工事のお知らせ■■ > ============================================================================ > > 平素より弊社サービスOTD BBSをご利用頂き大変ありがとうございます。 > > さてこのたび、弊社では法定点検による電源設備調査、および回線設備メンテナンス > 工事を予定しております。 > > この間、弊社の提供するすべてのOTD BBS関連のインターネットサービス > が一時的に停止致します。 > > お客様には大変ご迷惑をおかけ致しますが、何卒ご了承頂きたく > 宜しくお願い申し上げます。 > > > 日  時 : 2004年 5月30日(日) 午前8時30分より午後3時00分頃迄 > > 影響内容 : 上記時間内の通信断によるコンテンツ閲覧、およびデータ取得の不能 > > *作業終了次第、通常どおりご使用になれます。 > > 今後ともOTD BBSを何卒よろしくお願い申し上げます。 要するに、来週日曜日(5月30日)の日中は、掲示板にアクセスできなくなる とのことです。 当メルマガのサポート掲示板を利用される方は、ご注意下さい。 「いざというときに役立つMS−DOS」サポート掲示板 http://bbs9.otd.co.jp/dos/bbs_thread ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ IE-SPYAD(2) ------------------------------------------------------------------------ 今回は先週の続きで、セキュリティツール「IE-SPYAD」に含まれるインストール 用バッチファイル「install.bat」の動作について検討します。 なお、「IE-SPYAD」の紹介は先週号(第51号)で行いましたので、ご覧になっ ていない方は、バックナンバー(下記URL)にざっと目を通しておいて下さい。 http://www.geocities.co.jp/Bookend-Hemingway/4963/column/dos/dos51.txt また、今回の内容は、おそらく、「install.bat」の内容を見ながら読んでいた だかないと理解しにくいかと思われます。 前号の記事の一部を下に再掲しますので、「IE-SPYAD」をダウンロードされてい ない方は、まず、下の記述に従ってダウンロードを行って下さい。 (インストールする必要はありません) > 「IE-SPYAD」は、下記URLからダウンロードできます。 > http://www.staff.uiuc.edu/~ehowes/resource.htm > > 英語のWebページなのでとまどう方もあるかもしれませんが、いちいち英文を読 > む必要はありません。先に示した「窓の杜」の記事とこのメルマガを読めば、必 > 要な情報はほぼ得られるはずですので、面倒なら読み飛ばして下さい。 > > ページの上から4分の1くらいの位置にある「Download:」という茶色の文字を > 探して下さい。 > 「Download:」の下にある、「IE-SPYAD.EXE」または「IE-SPYAD.ZIP」の文字を > クリックすればダウンロードが始まります。 > > なお、「IE-SPYAD.EXE」と「IE-SPYAD.ZIP」の中身は同じです。 > 「.EXE」は自己解凍書庫、「.ZIP」は別途解凍ソフトが必要、という違いです。 ------------------------------------------------------------------------ ● バッチファイル中のコメント まずは、先週(第51号)紹介した「IE-SPYAD」のインストール用バッチファイ ル「install.bat」をテキストエディタで開いて下さい。 バッチファイルを開くと、著作権について書かれた長いコメント文が目に飛び込 んでくるはずです。 バッチファイル中には、この「install.bat」のように、一定の書式に従ってコ メントを書くことができます。 バッチファイル中のコメントの書式には、主に、以下の2つがあります。 いずれも、1行単位でコメントを記す方法です。 (他のプログラミング言語と異なり、バッチファイルでは、行の途中からコメン トを記すことはできません) REM コメント :: コメント このうち、上の「REM」は、REMコマンドとも呼ばれる正式な方法です。 「REM」は「REMark(所見)」の略だったと思います。 一方、下の方法は、ラベルを利用するものです。 ラベルとは、「:ラベル」という書式で記述し、GOTOコマンドのジャンプ先とな るものでした(第31号参照)。 ラベルは、使われない(GOTOコマンドのジャンプ先に指定されていない)ものが いくつあっても問題ありません。 このため、ラベルは、コメント代わりに利用することができます。 ただしこのとき、通常のラベルと明確に区別するため、行頭のコロン「:」は2 つ続けて記述するようにしたほうがよいでしょう。 ------------------------------------------------------------------------ ● メニュー画面の仕組み 「install.bat」を実行すると、メニュー画面が表示されます(第51号参照)。 このメニュー画面は、どのような仕組みで表示されているのでしょうか。 ラベル「:MENU」以降の部分(63〜111行目)を例に説明します。 「:MENU」のメニュー画面の仕組みは、次のようにまとめられます。 これは、バッチアプリケーション中でよく用いられるパターンです。 (1) CLSコマンドで画面を消去する。 (2) ECHOコマンドを連ねることでメニュー画面を描画する。 (3) CHOICEコマンドで選択肢の番号の入力を受け付ける。 (4) IFコマンドを連ねることで、入力された選択肢に応じて処理を分岐する。 では、上に挙げた各項目を、順に解説していきます。 第51号の「使用方法」の節も参照しながらご覧いただくと分かりやすいかと思 います。 (1) CLSコマンドで画面を消去する。 まず先頭の「cls」(66行目)で、プロンプト中に既に表示されていた文字を 全て消去しています。 そういえば、CLSコマンドはこれまでに一度も紹介していませんでしたね。 CLSコマンドは、プロンプト中の文字を消去するコマンドです。 「CLS」とは「CLear Screen(画面消去)」の略です。 (2) ECHOコマンドを連ねることでメニュー画面を描画する。 続いて、多数のECHOコマンドを並べる(72〜94行目)ことで、メニュー画面 を描画しています。 この、CLSコマンドと多数のECHOコマンドとを組み合わせて用いることで1画面 分の描画を行う方式は、バッチアプリケーションにおいては、ごく一般的な手法 です。 (3) CHOICEコマンドで選択肢の番号の入力を受け付ける。 選択肢の番号を選ぶ部分は、CHOICEコマンド(102行目)によって実現してい ます。 CHOICEコマンドは、ユーザにキー入力を求め、押されたキーに応じてエラーレベ ルを設定します。 この場合は、押された数字がそのままエラーレベルに設定されています。 (4) IFコマンドを連ねることで、入力された選択肢に応じて処理を分岐する。 6つ並んだIFコマンド(104〜109行目)によって、入力された番号に応じ て処理を分岐させています。 大きい数字のものから順にエラーレベルを調べていることに注意して下さい。 「IF ERRORLEVEL 数字 コマンド」 という構文は、「ERRORLEVEL≧数字」のときにコマンドが実行されるからです。 (第31号・第34号参照) 各選択肢を選んだときに表示される確認画面にも、メインメニューと同様に、こ の(1)〜(4)のパターンが用いられています。 例えば、ラベル「:UNINST」以降(114〜141行目)を調べてみて下さい。 「:MENU」とそっくりのパターンがあるはずです。 ------------------------------------------------------------------------ ● バッチファイルの全体構成 個々のメニュー画面の表示の仕組みは、上で説明した通りでした。 では、このバッチファイルの全体の動作は、どのようになっているのでしょうか。 以下に、「install.bat」の全体の大雑把な流れを示します。 ただし、エラー処理については省略しています。 また、図中の各項目は、はじめの「CHOICE Installation」以外は全てラベル名 で示しています。 【註】 図は、等幅フォントでご覧下さい。 (バッチファイル実行開始)   ↓ ┌──────────┐ │CHOICE Installation │ └─┬────────┘   │←──────────────────────┐   ↓                       │ ┌───┐                     │ │ MENU │                     │ └─┬─┘                     │   ├───┬────┬─────┬────┐   │   │   ↓    ↓     ↓    ↓   │   │ ┌───┐┌────┐┌───┐┌───┐ │   │ │UNINST││INSTALL ││REMOVE││ ADD │ │   │ └─┬─┘└─┬──┘└─┬─┘└─┬─┘ │   │   │←───┘←────┘←───┘   │   │   ↓                   │   │ ┌────┐                │   │ │SUCCESS │                │   │ └─┬──┘                │   │   ↓                   │   │ ┌───┐                 │   │ │RETURN│                 │   │ └─┬─┘                 │   │←──┴───────────────────┘   ↓ ┌───┐ │ FIN │ └───┘   ↓ (バッチファイル実行終了) 各項目の動作について、簡単に触れておきます。 「CHOICE Installation」では、このバッチファイルの動作に必要なCHOICEコマ ンドの有無を調べ、ない場合にはCHOICE.COMまたはCHOICE.EXEをインストールし ています。 「MENU」の動作は上で説明した通りです。 「UNINST」「INSTALL」「REMOVE」「ADD」は、いずれも、確認画面を表示した上 で、レジストリの更新を行っています。 「SUCCESS」は、画面に「SUCCESS!!」と表示して一時停止するだけの動作です。 これは、「UNINST」〜「ADD」の各機能が正常に実行されたことをユーザに知ら せるためにあります。 「RETURN」は、「UNINST」〜「ADD」各機能の実行後に、そのまま終了するかメ ニュー画面「MENU」に戻るかをユーザに選択させる部分です。 最後の「FIN」は、終了メッセージを表示するだけです。 ------------------------------------------------------------------------ 今回はここまでです。 お疲れ様でした! 次号の予定は、「AUTOEXEC.BAT」です。 DOS起動時に自動実行されるバッチファイル「AUTOEXEC.BAT」の内容について 説明します。 ----☆PR☆-------------------------------------------------------------- 〓 Prize-Prize 〓 アンケート協力やメール受信で手軽に小遣い稼ぎ! スポンサーからの商品案内のメール受信 → 1通につき1〜10円獲得 毎週実施の週間市場調査への回答 → 1回につき100円獲得 不定期実施の市場調査への回答 → 1回につき100〜500円獲得 ●登録 → http://www.prize-prize.com/pages/index.php?refid=chayahoshi ---------------------------------------------------------------☆PR☆--- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ コメントをお待ちしています ------------------------------------------------------------------------ 皆さんからの感想・質問・要望をお待ちしています。 「こんなテーマを扱ってほしい」 「こんなことはできるの?」 「このへんが分かりにくかった」 「1回の分量を増やしてほしい/減らしてほしい」 など、掲示板(下記URL)まで気軽にお願いします。 http://bbs9.otd.co.jp/dos/bbs_thread (スレッド表示) http://bbs9.otd.co.jp/dos/bbs_tree (ツリー表示) メールでもコメントを受け付けておりますので、そちらもご利用下さい。 tetrahedrane@yahoo.co.jp なお、いただいたコメントは、本マガジン上で引用する場合があります。 (メールアドレスやお名前は一切公開いたしません) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 感想・質問宛先 http://bbs9.otd.co.jp/dos/bbs_tree tetrahedrane@yahoo.co.jp ● 広告募集 当メルマガへの広告掲載をご希望の方は、下記アドレスまでお願いします。 tetrahedrane@yahoo.co.jp ● メルマガ交換広告募集 当メルマガとのメルマガ交換広告をご希望の方は、下記アドレスまでどうぞ。 tetrahedrane@yahoo.co.jp ● 登録・解除・バックナンバー http://www.geocities.co.jp/Bookend-Hemingway/4963/column/dos/ このメールマガジンは、『まぐまぐ』を利用して発行しています。 http://www.mag2.com/m/0000106066.htm (c) 2004 Chisato Hayahoshi