この資料は1991年頃にMS-DOS用に作ったものを書き直したものです。
更新

CUIによるパソコン操作(コマンドプロンプト)

小山智史

0. 準備
1. コマンドプロンプト
2. ファイルの操作
3. リダイレクションとパイプ
4. プログラムの呼び出し
5. バッチプログラム

0. 準備


1. コマンドプロンプト

 [スタート][プログラム][Windowsシステムツール]から[コマンドプロンプト]を起動すると、ウィンドウが開き

と表示され、カーソルが現れます。これはプロンプトと呼ばれ、「だんな様何をしましょうか?」と利用者に仕事の指示を促しているのです。

 ここで、「仕事を指示する」わけですが、試しにキーボードをでたらめに押してみてください。以後、赤の下線はキーボード操作を表していて、最後にEnterを押します。

「そんな意味不明なことを指示されても困る」というメッセージが返ってきます。

 このように、パソコンからの「文字の」プロンプトに促され、キーボードから「文字で」仕事の指示を与えます。パソコンの仕事の進捗状況や結果はディスプレイに「文字で」表示されます。これがCUI(Character User Interface)です。これに対し、WindowsやMacのインタフェースはGUI(Graphical User Interface)と呼ばれます。


2. ファイルの操作

2.1 ドライブ

 パソコンのハードディスクやCD-ROM/DVD-ROMやUSBメモリドライブは「Cドライブ」「Dドライブ」のようにABC...のドライブ名をつけて区別されます。

(1) ドライブの切り換え

 Dドライブで仕事をしたい時には

と操作します。すると

となります。

2.2 ファイル

 ドライブの中にデータを記録する場合、データをファイルに格納し、ファイルには名前をつけて管理します。

 ファイル名にはsumo.csvkiji.txtのように、「.(ピリオド)」と拡張子を付け加えることができます。kiji.txtは拡張子が「txt」でこれはテキストファイルであることを表しています。

Windowsの場合、

  1. フォルダのGUI表示ではデフォルトで拡張子が表示されないようになっています。何かフォルダを表示し、[表示][オプション]の「表示タブ」で詳細設定の中の[登録されている拡張子は表示しない]のチェックをはずしてください。

  2. ファイル名やフォルダ名の大文字小文字は区別されません(見かけ上は大文字や小文字にできますが)。

  3. 拡張子はアプリケーションソフトと関連づけがされていて、拡張子がtxtのファイルアイコンをダブルクリックすると「メモ帳」が起動し、そのファイルを開いてくれます。また、パソコンにExcelなどの表計算ソフトがインストールされていれば、拡張子がcsvのファイルアイコンをダブルクリックすると表計算ソフトが起動し、そのファイルを開いてくれます。

(2) どんなファイルがあるかを見る: dirコマンド

 ドライブの中には、たくさんのファイルが入っていて、それらのファイルには名前が付いています。どのような名前のファイルがあるか見るにはdirコマンドを使います。

のように、ファイルを作った日時、サイズ、ファイルの名前が表示されます。サイズの単位はバイト(byte)で、英数字ならば705文字分のデータが中に格納されていることを示しています。

 ファイルの名前だけを見たいときは、

と操作します。

 ファイルの数も数十個になると、その中から自分の関心のあるファイルをみつけるのが大変になります。そのような時は、

のようにします。「*」は「そこはどんな文字列でもよい」ということを意味しています。ファイル名のところでは、ワイルドカードと呼ばれる2つの特殊文字を使うことができます。「?」は、その位置に「任意の1文字」があてはまり、「*」は、その位置に「任意の0文字以上の文字列」があてはまります。

 このようなコマンド操作はとかく面倒と思われがちですが、そうでもありません。コマンド操作のヒストリー機能は大変便利です。

 上記のような操作をした後にを押すと直前のキーボード操作が画面に現れ、Enterを押すだけで実行を指示できます。を繰返し押せば、いくつか前のコマンド操作も現れます。その操作を部分的に変更したければでカーソルを移動して修正できます。

 さて、ここで試しに Alt + Enter の操作をしてみてください。ディスプレイ全体がコマンドプロンプトの画面になります。Windows以前のMS-DOSあるいは更に前のCP/MなどのOSの時代はこのような画面でパソコンを使っていました。もう一度同じ操作をすると元に戻ります。

(練習) Cドライブにどのようなファイルがあるかを、GUIとCUIの両方の操作で調べなさい。

(3) ファイルの内容を見る: typeコマンド

 dirコマンドで確認したように、ドライブの中にはkiji.txtという名前のファイルがあります。typeコマンドで内容をディスプレイに表示してみましょう。

 どんなファイルでもこのように見れるかというと、そうではありません。実行形式のプログラムファイルなどは、見るためのファイルではありませんから、そのようなものを無理に見ようとするとどうなるか...あとで試してみましょう。

 Windowsの場合は、typeコマンドに相当する機能は無いので、メモ帳を起動してファイルの中身を表示します。

 うんと長い文書を見ていて、途中で「もうやめた」という場合は Ctrl + C の操作をします。仕事は中断され、プロンプトが表示されます。

(4) 同じ内容のファイルを作る(複写): copyコマンド

 既にあるファイルと同じ内容のファイルをもうひとつ作る時にはcopyコマンドを使います。

これで、kiji.txtと全く同じ内容のtest.txtという名前のファイルが新しく作られます。dirコマンド、typeコマンドおよびWindowsの操作で確かめてください。

(5) ファイル名を変更する: renコマンド

 ファイル名を変更するにはrenコマンドを使います。

dirコマンド、typeコマンドおよびWindowsの操作で確かめてください。

(6) ファイルを消去する: delコマンド

 ファイルを消去するにはdelコマンドを使います。

これでnew.txtというファイルは消えてしまいます。

2.3 ディレクトリ(フォルダ)

 ファイルの数が多くなると、どれが何のファイルかわからなくなってきます。そこで、ドライブの中にディレクトリ(フォルダ)を作り、用途や種類によってファイルの置き場所を分けます。ディレクトリ(directory)は登録簿という意味で、ここでは、管理下にあるファイルとディレクトリの目録を表しています。

 ディレクトリの中に更にディレクトリを作ることができ、ディレクトリは「階層構造」になっています。例えばWindowsのCドライブでは以下のようになっています(<&nb>はディレクトリ)。

 図を90度回転して「C:¥」を下にすると「木」のように見えます。「¥」は「木の根」に相当することから「ルート (根)ディレクトリ」と呼ばれます。ファイルは葉に相当します。

 dirコマンドではカレントディレクトリ内のファイル一覧が表示されます。

(7) カレントディレクトリを移動する: cdコマンド

 カレントディレクトリを移動するコマンドがcdコマンドです。cdコマンドで移動しながら、dirコマンドで中にどんなファイルがあるか見てみましょう。まず、

でルートディレクトリに移動し、続いてdirコマンドでファイルの一覧を表示してみてください。ここで、(DIR)の印がついた項目がディレクトリで、progというディレクトリがあることがわかります(図と照合のこと)。

の操作でprogというディレクトリに移動できます。このように、図と照合しながらCドライブの中を「探検」してみてください。親ディレクトリに戻るには

と操作します。dirコマンドで表示されるファイル一覧の中に、「.」や「..」という名前がありますが、「.」はカレントディレクトリ、「..」は親ディレクトリを表しています。

 以上の操作では、カレントディレクトリからの相対パスで移動先を指定していることになります。

 ひととおり探検が終わったら、

と操作してください。この操作では目的地を絶対パス(ルートディレクトリからの経路)で直接指定しています。

(8) ディレクトリを作る: mdコマンド

 新しくディレクトリを作るにはmdコマンドを使います。

(9) ディレクトリを消す: rdコマンド

 ディレクトリを消すには、そのディレクトリの中のファイルをすべて消してから、rdコマンドを使います。


3. リダイレクションとパイプ

 コマンドの多くは、入力はキーボード(標準入力)から行い、結果はディスプレイ(標準出力)に表示するようになっています。コマンド行で特別な指示をすることにより、入力をキーボードからファイルに切り換えたり、出力をディスプレイからファイルに切り換えることができます。これを入出力のリダイレクトといいます。

 また、あるコマンドの出力を別のコマンドの入力に直結して渡すパイプと呼ばれる機能があります。

3.1 出力のリダイレクト

 dirをはじめ多くのコマンドは、結果をディスプレイに表示するようになっています。ここで、ディスプレイに表示するかわりにファイルにしまうには次のようにします。

これで、本来表示されたはずのものがtest.txtというファイルにしまわれます。dirコマンドとtypeコマンドで確かめてください。「>」が出力のリダイレクトを指示する記号です。

 既にあるファイルに追加したい場合は、

のように「>>」を使います。test.txtの内容を確認してください。

 今度は、

と操作して、test.txtの内容を確認してください。さっきまでのtest.txtの中身は失われ、新しい内容に置き替わっていることがわかります。

3.2 入力のリダイレクト

 sortというプログラムがあります。*

このプログラムは、キーボードから何行か文字を入力すると、それを行単位でアルファベット順に並べ換えて表示してくれます。実行の様子は例えば次のようになります。

逆順に並べ換えたいときは、

とします。

 でも、実はこのようにデータをキーボードから入力して使うことはありません。あらかじめ用意したデータファイル(例えばtest.txt)に対し、

のようにします。test.txtというファイルの中のデータが、行単位でアルファベット順に並べかえられて表示されます。「<」が入力をリダイレクトすることを指示する記号です。

 それでは、練習用に用意したsumo.csvというファイルを使い、dirコマンドやtypeコマンドで確認してみましょう。中身は相撲の横綱のデータです。各行は「名前, 出身地, 身長, 体重」で構成されています。

とすると、各行の先頭文字からアルファベット順に比べて並べ替えられます。身長の順に表示する時は

とします。「/f」と「/t,」と「/3」は、「,」を区切り文字とした3番目のフィールドについて比較する指示、「/n」は数値で比較する指示です。

 入力のリダイレクト機能と出力のリダイレクト機能を組み合わせて

のようにすれば、sumo.csvというファイルの中身が並べ換えられてtest.csvというファイルが作られます。

(練習) 体重について逆順のソートをしてtaiju.csvというファイルにしなさい。

3.3 パイプ

 あるプログラムの出力を、そのまま別のプログラムの入力にしたいことがあります。前出の例では、一旦test.txtというファイルを作ってからsortを実行しましたが、dirからsortに直接データを引き渡すことができるならば、途中のtest.txtというファイルを作る必要はありませんでした。そのためには次のようにします。

 このように、2つのプログラムの間を「|」で区切ると、本来ディスプレイに表示されるところと本来キーボードから入力するところとが、パイプで結ばれます。更にこの結果をファイルにしまいたいならば、

のようにします。パイプは何段も連続して結ぶことができます。sortのようなコマンドをフィルタといいますが、フィルタには他にmorefindなどがあります。

 dirtypeを実行すると表示量がたくさんあるために、はじめの部分がディスプレイから消えてしまうことは既に経験しました。moreを使えば、丁度ディスプレイにいっぱい表示されたところで一旦停止してくれます。続きを見るときはスペースキーを押します。

 この他、ファイルの中から文字列を見つけるfindコマンドがあります。

とすると、「csvの文字列を含むファイルやディレクトリ」を表示してくれます。findはいかにも「フィルタ」と呼ぶにふさわしいコマンドです。

(練習) sumo.csvから青森県出身者のデータを抽出し、aomori.csvというファイルにしなさい。


4. プログラムの呼び出し

 dirtypedelcd, md, rdなどは内部コマンドと呼ばれ、Windows OSが機能を提供しています。これに対し、メモ帳のプログラムはnotepad.exeというファイルに格納されていて、

という操作で呼び出すことができます。拡張子がexe, batのファイル(実行ファイル)は、ファイル名を入力することで呼び出すことができます(外部コマンド)。

 実行ファイルはカレントディレクトリまたはパスが設定してあるディレクトリに置きます。notepad.exeはパスが設定されているc:¥windows¥system32に格納されています。

 どのディレクトリにパスが設定されているかは

の操作で確認できます。

 Windowsでは、実行ファイルのアイコンをダブルクリックすることでプログラムを呼び出すことができます。また、拡張子とアプリケーションの関連づけにより、例えば、○○.txtのファイルであれば、このファイルアイコンをダブルクリックすることにより、メモ帳(notepad.exe)が起動します。どの拡張子がどのアプリケーションと関連づけられているかは、[ツール][フォルダオプション]の[ファイルのタイプ]タブで調べることができます。

 カレントディレクトリに無くて、パスが設定してあるディレクトリにも無い実行ファイルは、ファイルパスを指定して呼び出すことができます。


5. バッチプログラム

5.1 簡単なバッチプログラム

 上記の

の操作を「dircsv」の操作で済むようにしてみましょう。このために必要なことは、「dir | find "csv"」という内容のファイルdircsv.batを作ることです。このファイルをバッチファイルと言います。このファイルを作り、動作を確認してみましょう。

 1度このようなバッチファイルを作っておけば、その後いつでもコマンドとして利用できます。

5.2 パラメータの指定

 上記の「dircsv」はカレントディレクトリにしか利用できません。

のようにパラメータを指定できるようにするにはどうしたらいいでしょうか。このためには、dircsv.batの内容を「dir %1 | find "csv"」と変更します。

 1番目のパラメータを%1と書き、必要な場合は、%2, %3, ...と複数のパラメータを与えることができます。

 バッチファイル中に何行かを記載すれば、それらは順に処理されます。

 以下の内容でdirnote.batというファイルを作成しておけば、dirnote.batを呼び出すことにより、データを処理してその結果をファイルに格納し(1行目)、メモ帳でそのファイルが開かれます(2行目)。


koyama88@cameo.plala.or.jp