連載

改訂版 プロフェッショナルVB.NETプログラミング

Chapter 15 コンソール・アプリケーション

株式会社ピーデー 川俣 晶
2004/09/23


 本記事は、(株)技術評論社が発行する書籍『VB6プログラマーのための入門 Visual Basic .NET 独習講座』の一部分を許可を得て転載したものです。同書籍に関する詳しい情報については、本記事の最後に掲載しています。

 コンソール・アプリケーションとは、主にコマンド・プロンプトから利用する、ウィンドウを作成しないアプリケーション・プログラムのことである。初期のBASIC言語は、この形態のアプリケーション・プログラムを作成するために使われたが、ウィンドウ表示を行うOSのための開発言語として登場したVisual Basicでは、対応していなかったものである。しかし、コンソール・アプリケーションにはさまざまな長所もあり、単純に古いものとして片づけることはできない。VB.NETでは、このコンソール・アプリケーションを作成する機能が追加されているが、これは単なる先祖返りではなく、1つの進歩であるといえる。

 本章では、コンソール・アプリケーションの簡単な入門から始めて、どのように使用したときにその真価が発揮できるかまで含めて、解説していく。

コンソール・アプリケーションとは何か?

 コンソール・アプリケーションは、CUI(Character User Interface)と呼ばれるカテゴリに分類することができる。主にコマンド・プロンプトから利用する、ウィンドウを作成しないアプリケーション・プログラムのことである。CUIの逆はGUI(Graphical User Interface)であり、GUIとは、大まかにいえば、ウィンドウを作成してマウスで操作するものである。

 VB 6までのVisual Basicでは、基本的に作成手段がサポートされていなかったが、WSH(Windows Scripting Host)で、VBS(Visual Basic Script)を使用する場合は作成することができた。

コンソール・アプリケーションの利用方法

 コンソール・アプリケーションは、主にコマンド・プロンプトに対して、呪文のようなコマンドをタイプしてEnterキー(。リターン・キーともいう)を押すことで実行する。つまり、キーボードから多数の文字をタイピングすることが前提となる。このようなスタイルは、初期のコンピュータではよく見かけたもので、初期のBASIC言語もこのようなスタイルであった。例えば、昔のBASIC処理系では、プログラムを実行する際、[R]キーを押し、[U]キーを押し、[N]キーを押し、を押したものである(つまり「RUN」と入力してを押す)。

 恐らく、GUIが当たり前になってからパソコンに接したユーザーの中には、このような面倒なスタイルを利用する意味が分からない人も多いと思う。しかし、いまでもコンソール・アプリケーションには根強いニーズがあり、実際に利用されている。また、コンソール・アプリケーションの開発が現在も続けられているのも事実である。

 さて、そうはいっても「コンソール・アプリケーションなんか1回も使ったところを見たことがない」という読者もいるだろう。簡単にコンソール・アプリケーションの利用方法を解説する。

 すでに述べたとおり、最も一般的なコンソール・アプリケーションの起動方法は、コマンド・プロンプトを使用する方法である。コマンド・プロンプトを開くには、スタートメニューから[すべてのプログラム]-[アクセサリ]-[コマンド・プロンプト](Windows XPの場合)という手順で行う。すると、以下のようなウィンドウが開く(図15-1)。

●図15-1 コマンド・プロンプトの起動画面

 表示される文字が異なっている場合もあると思うが、それは気にしなくてよい。Windowsのバージョンやユーザー名などにより、表示内容は変化するからである。

 それでは、文字キーの[v]を押し、次に[e]を押し、次に[r]を押してキーを押してみよう。すると、それを実行したOSのバージョン情報が表示されるはずである(図15-2)。

●図15-2 verコマンドの実行結果

 「ver」とは、Windowsのバージョンを表示する機能を持ったコマンドである。このように、コマンドの綴りをタイプしてキーを押して結果を得るのが、一般的な使い方である。

 verコマンドは、コマンド・プロンプトを実現しているコマンドシェル(Windows XPならcmd.exe)が内部的に実現しているもので、その機能を実現する独立した実行ファイルが存在するわけではない。では、実際に実行ファイルとして存在しているコマンドを実行してみよう。その一例として、pingコマンドを使ってみる。コマンド・プロンプトに、以下のように打ってみよう。

ping www.piedey.co.jp

 細かい表示内容は違うかも知れないが、おおむね、図15-3のようになるはずである。

●図15-3 pingコマンドの実行結果

 ここで、「ping」はコンソール・アプリケーションの名前である。実際にping.exeというファイルが、Windowsをインストールしたディレクトリの下のSystem32ディレクトリ(Windows XPの場合)に存在しており、pingというキーワードは、これを呼び出して実行することを指示している。後半の“www.piedey.co.jp”は、コマンドライン引数としてping.exeに引き渡される。その結果、ping.exeは、www.piedey.co.jpというホストとの間に通信を発生させ、応答に要する時間を計測して表示するという機能を発揮する。結果は、コマンド・プロンプト自身の中に表示され、新たなウィンドウなどは表示されない。逆にいえば、複数のプロセスが1つのウィンドウを表示用として共有することになる。GUIアプリケーションではできないことだが、コンソール・アプリケーションではこれが普通の形態である。

 さて、コマンドが複雑化してくると、入力する文字数も増えてくるが、そこでもし、入力を間違えたときの文字の訂正はどうすればよいのだろうか。このような場面を想定して、編集機能もコマンド・プロンプトには用意されている。なお、ここで説明する機能はWindowsのバージョンによっては標準で入らないので、コマンド・プロンプトで「doskey」として組み込む必要がある(Windows XPでは標準で入っている)。

 まず、コマンドの入力中に間違えた場合に[BackSpace]キーで削除できるのは当然として、矢印キーの左右で、カーソルを前後に移動させることができる。そして、文字キーを使って文字を書き換えることができる。[Insert]キーは、インサート・モードと上書きモードの切り替え、[Delete]キーはカーソル位置の文字の削除の機能を持つ。

 ここで注意が必要なのは、矢印キーの上下である。これは、コマンド・プロンプトの画面で、カーソルを上下に移動させるのではなく、ヒストリー機能を呼び出す役割を持っている。過去に利用者自身が入力した行は一定の範囲内で保存されており、矢印キーの上を押すと、順番に新しいものから古いものへ、順番に出てくる。これを活用することで、キーの入力量を大幅に減らすことができる。例えば、以下のように綴りを間違えてしまったとしよう(図15-4)。

●図15-4 verをvarと間違えて入力した画面

 ここですぐに矢印キーの上を押すと、直前に入力した文字列(ここではvar)が出てくる(図15-5)。

●図15-5 矢印キーの上を押す

 そこで、矢印キーの左でカーソルを戻して、aをeに書き直してキーを押すことができる(図15-6)。

●図15-6 varをverに修正して実行
 

 INDEX
  [連載] 改訂版 プロフェッショナルVB.NETプログラミング
  Chapter 15 コンソール・アプリケーション
  1.コンソール・アプリケーションとは何か?(1)
    2.コンソール・アプリケーションとは何か?(2)
    3.VB.NETで作成するコンソール・アプリケーション/コマンドライン引数
    4.コンソール・アプリケーションと入出力/リダイレクトを活用する/パイプの活用
    5.バッチの活用/スケジュールして無人実行/プロセスの終了コード
 
「改訂版 プロフェッショナルVB.NETプログラミング 」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH