§6 ワイルド・カード
別名恐怖のワイルドワードとか、魔性の・・・等と呼ばれますが、知って 損はないというか、知ってないとDOSが使えるとはいえません。ワイルドカードを知るには内部的動作を知っておいた方がいいでしょう。ワイルドカードを ユーザー側からみるとふたつあります。“*”と“?”です。が、システム側からみると“?”しか存在しません。“*”は以後の文字を任意として、“?”任 意の一文字という意味です。任意の一文字という事はファイル名で指定された場所の文字がなんであってもシステムは採用するという事です。例えば
A:\>DIR ????????.TXT
を、実行すれば拡張子がTXTである全てのファイルを表示します。DOSにとっては拡張子がTXTであればなんでも選択してしまいます。仮に D1001.TXTとD2001.TXTが存在したとします。これを両方とも選択する場合はD?001.TXTとすれば良いわけです。さて、悪魔の“*” の方です。仮にD1011.TXTと、いま一つD1011-P.TXTがさらに存在したとします。ここでDIR D10*.TXTを実行すれば
A:\>DIR D10*.TXT ・・・・ ・・・・ D1001 TXT ..... D1011 TXT ..... D1011-P TXT .....
という具合になります。といっても、DOSは*を扱いません。コマンドを受け取った時点でDIR D10?????.TXTと直してしまいます。という事はです。以上の仮のファイルが存在するとして以下のコマンドを実行した場合は・・・
A:\>DIR *01.TXT
どうなるでしょう。DIR *.TXTに相当する事になります。つまり、拡張子TXTのファイルというファイルを表示してしまいます。これが魔性とか言われる由縁でDEL命令でワイ ルドカードをつかって泣く人はたくさんいるようです。皆さんも気をつけましょう。
特に上記のような命令をUnixで実行すると名前が01でおわりピリオドで区切ってTXTと名の付くファイルを指定するという落とし穴があったりもしま す。
もし消してしまった場合は、一度だけ(消した直後のみ)チャンスがあります。
A:\>UNDELETE
と実行してみましょう。うまくいったら成功です。ですが、一度でもディスク操作するとまず駄目になってしまいます。覚えておいて損はないでしょう。
実習6 ワイルドカードを使おう!
DIR *.TXT DIR *.COM
など、いろいろと試してみてください。他にいいようがないのが事実です。いうべきことは前項で言い切りましたから。理論的に理解したと思ったらDIRで 確認してみてください。こーしたらあーなる。試すということも進歩の道の一つです。試すにはDIRが最適です。
おまけ6 拡張子にみるファイルの種類
拡張子がファイルの性質(?)を示すことは上記の通りですが、この習慣は古くはCP/M80の時代から受け継がれてきています。西暦にして1980年代 以前と考えてもいいのではないでしょうか(わたしもここまで古くなるといまいちはっきりしない)。20年近く前からの習慣ですから拡張子の示す内容も数多 くあるわけです。英数字の総数が36文字。拡張子は3文字ですから拡張子の構成しえる数は36の3乗ほど通りがあるわけです。46656通りですね。これ だけの可能性が(といえるかどうか・・・)あるわけで代表的な種類は覚えておくと便利だということになるわけです。ですが、私の思いつくものを書いている ときりがないので参考文献から引用しましょう。
拡張子 | ファイルの種類 | 拡張子 | ファイルの種類 |
.ASM | アセンブラ・ソース・ファイル | .FOR | FORTRANソース・ファイル |
.BAK | バックアップ・ファイル | .HEX | インテル・hex・オブジェクト・ファイル |
.BAS | BASICプログラム・ファイル | .LIB | アセンブラ・ライブラリ・ファイル |
.C | Cソース・ファイル | .M80 | アセンブラ・ライブラリ・ファイル |
.COB | COBOLソース・ファイル | .MAC | アセンブラ・ソース・ファイル |
.CRF | クロスリファレンス・ファイル | .PAS | PASCALソース・ファイル |
.DAT | データ・ファイル | .PLI | PL/Iソース・ファイル |
.DOC | ドキュメント・ファイル | .PRN | リスティング・ファイル |
.FIF | FORTHソース・ファイル | .REL | オブジェクト・ファイル |
この他にはTXTを筆頭にLOG,AWK,TMP等々、あまたの拡張子が存在します。あと、言葉の補足をおこなっておきます。現在、学校では教えない言 葉が多々上の表には顔を出しています。ソース・ファイルは原始プログラムファイル。クロスリファレンスは連係処理用ファイル。ライブラリは確かそのままで てきました。リスティングは印刷用(ちょっと違うかな)。オブジェクトは目的ファイルのことです。