━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ いざというときに役立つMS−DOS 執筆:速星 千里 第47号(2004.03.27) バッチファイル開発ツール 5808部配信 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <目次> ■ はじめに ● 4月の発行予定 ■ バッチファイル開発ツール ● バッチファイルを1行ずつ実行する ● ヘルプを付ける ● デバッグ支援ツール:完成版 ----☆PR☆-------------------------------------------------------------- ◆ クリックラウンジ -- クリックだけで報酬ゲット! ◆ 3月19日にオープンしたばかりの日本語版ペイドメール。 クリック単価はなんと最大11.11円。 登録者数の少ない今のうちがチャンス! 登録はこちらから → http://clicklounge.com/index.php?r=650 ---------------------------------------------------------------☆PR☆--- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ はじめに ------------------------------------------------------------------------ 皆さん、こんにちは。速星です。 今回は、バッチファイルの動作確認・デバッグ作業に利用できるバッチファイル を制作します。 ------------------------------------------------------------------------ ● 4月の発行予定 4月は、都合により2度休刊させていただきます。  4月 3日:休刊  4月10日:第48号(MS−DOSの実体)  4月17日:休刊(情報処理技術者試験前日)  4月24日:第49号(起動履歴記録ツール(1)) 詳細は、当メルマガのホームページでご確認下さい。 http://www.geocities.co.jp/Bookend-Hemingway/4963/column/dos/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ バッチファイル開発ツール ------------------------------------------------------------------------ これまで、バッチファイルを紹介する際は、完成品を提示した上でその動作を説 明する形式をとってきましたが、今回は趣向を変えて、バッチファイルの制作過 程をご覧頂くことにします。 ------------------------------------------------------------------------ ● バッチファイルを1行ずつ実行する バッチファイルを以下の書式で実行すると、1行ずつ実行結果を確認しながら実 行していくことができます。 COMMAND /Y /C バッチファイル名 [オプション[ ...]] 1行ずつバッチファイルの内容が表示され、その行を実行するかどうかを聞いて きます。「Y」を押せばその1行が実行されます。「N」を押してその行を飛ばす ことも出来ます。 この方法は、1行ごとに動作状況を確認しながら実行出来るので、バッチファイ ルが意図通り動作しない場合の原因箇所の究明に大変役立ちます。 特に、IFコマンドやGOTOコマンドを多用したバッチファイルのデバッグには欠か せないものといえるでしょう。 しかし、COMMANDコマンドのオプション「/Y /C」は意外と覚えにくいものです。 いちいち「COMMAND /?」でオプションを確認するのは鬱陶しいので、バッチファ イルにしてしまいましょう。 ここでは、バッチファイル名を「DEBUGHLP.BAT」とします。「DEBUG HeLPer」の 略のつもりです。 バッチファイルの起動時に指定したオプションは、自動的に、前から順に「%1」 「%2」などという特殊な変数に保存されるということでした。(第39号参照) 従って、バッチファイルの中心的な内容は以下のようになります。 -----(DEBUGHLP.BAT(案1)ここから)----- COMMAND /Y /C %1 %2 %3 %4 %5 %6 %7 %8 %9 -----(DEBUGHLP.BAT(案1)ここまで)----- このバッチファイル「DEBUGHLP.BAT」を作れば、以下の書式で簡単に、作成中の バッチファイルの動作確認を行うことができます。 DEBUGHLP バッチファイル名 [オプション[ ...]] ------------------------------------------------------------------------ ● ヘルプを付ける 「DEBUGHLP.BAT」は、上節で示した1行だけでもとりあえず使い物になります。 しかしこのままでは、作った本人以外は、バッチファイルの動作やオプションを 調べるためには中身をいちいち読む必要があります。 これでは不親切ですので、作った本人以外でも手軽に利用できるよう、ヘルプの 表示機能を加えることにします。 -----(DEBUGHLP.BAT(案2)ここから)----- @echo off if "%1"=="" goto USAGE if %1==/? goto USAGE if %1==-? goto USAGE command /y /c %1 %2 %3 %4 %5 %6 %7 %8 %9 goto END :USAGE echo バッチファイルのデバッグ支援ツールです. echo. echo DEBUGHLP [ドライブ:][パス]バッチファイル名 [オプション[ ...]] echo. echo バッチファイル起動時のオプションが8個まで指定できます. echo (9個目以降は記述しても無視されます) :END -----(DEBUGHLP.BAT(案2)ここまで)----- このバッチファイルは、次の各場合にはメインの処理「command /y /c 〜」を実 行せず、ラベル「USAGE」以下の記述に従って使い方の説明を表示します。 ・動作確認対象のバッチファイル名を指定せずに実行された場合 ・オプション「/?」を付けて起動された場合 ・オプション「-?」を付けて起動された場合 なお、「echo.」というのは改行のみを出力するコマンドです。「echo」と「.」 の間にはスペースを入れずに記述して下さい。「.」の代わりに「\」や「,」を 用いても、どうやら、同様の結果が得られるようです。 ヘルプを追加する際は、ファイル先頭の「@echo off」を忘れないようにして下 さい。これがないと、エコーバックが出力されて(第36号参照)、下のような 見苦しい出力結果になってしまいます。 > C:\>echo バッチファイルのデバッグ支援ツールです. > バッチファイルのデバッグ支援ツールです. > > C:\>echo. > > > C:\>echo DEBUGHLP [ドライブ:][パス]バッチファイル名 [オプション[ ...]] > DEBUGHLP [ドライブ:][パス]バッチファイル名 [オプション[ ...]] > > (以下略) ------------------------------------------------------------------------ ● デバッグ支援ツール:完成版 最後に、タイトルや作者名などを表示させるようにして、よりアプリケーション らしく仕上げてみました。ほとんど自己満足の領域ですが (^_^; -----(DEBUGHLP.BAT(完成版)ここから)----- @echo off echo DebugHelper Ver1.0 echo Copyright(c) 2004 Chisato Hayahoshi echo. if "%1"=="" goto USAGE if %1==/? goto USAGE if %1==-? goto USAGE command /y /c %1 %2 %3 %4 %5 %6 %7 %8 %9 goto END :USAGE echo バッチファイルのデバッグ支援ツールです. echo. echo DEBUGHLP [ドライブ:][パス]バッチファイル名 [オプション[ ...]] echo. echo バッチファイル起動時のオプションが8個まで指定できます. echo (9個目以降は記述しても無視されます) :END echo. -----(DEBUGHLP.BAT(完成版)ここまで)----- ------------------------------------------------------------------------ 今回はここまでです。 お疲れ様でした! 次号の予定は、「MS−DOSの実体」です。 DOSの動作の本質について説明します。 なお、来週は休刊しますので、次号の発行予定は4月10日となります。 ----☆PR☆-------------------------------------------------------------- 〓 Prize-Prize 〓 アンケート協力やメール受信で手軽に小遣い稼ぎ! スポンサーからの商品案内のメール受信 → 1通につき1〜10円獲得 毎週実施の週間市場調査への回答 → 1回につき100円獲得 不定期実施の市場調査への回答 → 1回につき100〜500ポイント獲得 ●登録 → http://www.prize-prize.com/pages/index.php?refid=chayahoshi ---------------------------------------------------------------☆PR☆--- ----☆PR☆-------------------------------------------------------------- ◆ クリックラウンジ -- クリックだけで報酬ゲット! ◆ 3月19日にオープンしたばかりの日本語版ペイドメール。 クリック単価はなんと最大11.11円。 登録者数の少ない今のうちがチャンス! 登録はこちらから → http://clicklounge.com/index.php?r=650 ---------------------------------------------------------------☆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