§5 ファイル名とファイルの構造、及びCOPY命令とTYPE命令

 §4は著者の間抜けさによって消え去りました。というより指導書(没に なった)との兼ね合いで。さて、ファイル名ですが、8文字以内のの名前部分と3文字以内の拡張子部分で成り立っています。たとえば、text.jswは textという名前とjswという拡張子で成り立っています。拡張子と名前の間には“.”(ピリオド)をいれます。ただし、前述のdirで表示したときの みはピリオドが表示されませんので注意しましょう。なお、IBM-DOS及びPC-DOSでは拡張子をエクステンションと呼びます。拡張子は必ずつける必 要はなく任意ですが、名前の部分は必須です。また、同じディレクトリ内に他のファイルと同じ名前のファイルをつくることは不可能です。ただし、ディレクト リが違えばその限りではありません。UNIXとは違い小文字と大文字は区別されませんから、気をつけてください。ディレクトリについては後述。

名前に関する規則

ファイルの名前は次の規則に従ってつけます。
・ピリオドの前は最大8バイトの長さです。(半角の英数字なら8文字、漢字やひらがななどの全角文字だけなら最大4文字。)
・次の半角記号が使えます。

 _   下線                                  ^  脱字記号
 $   ドル記号               ~  上線
 !   感嘆符                #  番号記号
 %   パーセント記号            &  アンパーサンド
 -   ハイフン               {} 中括弧
 @   AT記号               '  一重引用符
 `   アポストロフィ            () 小括弧

 注:これら以外の記号は使えません。
・スペース、カンマ、バックスラッシュ*3、ピリオド(ただし名前とエクステンションを区切るためのピリオドを除く)は使えません。
・次に挙げる名前はシステム予約済みのため使えません。
 CLOCK$,CON,AUX,COMn(nは1から4),LPTn(nは1から4),NUL,PRN
同一ディレクトリー内のあるあるファイルと同じ名前を使える事はできません
出所PC-DOS J7.0/Vユーザーズ・ガイド

*3)“\”の事であるがPC-DOSの日本語モードの場合は“\”になる。MS-DOSも例外ではなく98の場合は円記号“\”と読みかえる必要があ る。

エクステンションに関する規則

エクステンションは、ファイルの情報を分類するのに役立ちます。たとえば、
MINUTES.TXTというファイルでは、エクステンション.TXTはこのファイルがテキスト・ファイルであることを示しています。エクステンションで は半角英数字で3文字以内です。使用できる文字などに関する規則はファイルの名前の場合と同じです。

次のエクステンションは、DOSでは特別な意味を持っています。

・.EXEは(実行可能)または.COM(コマンド)ファイルにはプログラムが含まれると
 見なされます。
・.BAT(バッチ*4またはREXX*5)ファイルにはDOSが順次に実行する一連のコマン
 ドが含まれていると見なされます。
・.INI(初期化)ファイルには、システムやアプリケーションを指導するために必要な
 情報が含まれていると見なされます。
出所PC-DOS J7.0/Vユーザーズ・ガイド

*4)バッチファイル、後でやるが結構便利。特に一定の処理を繰り返すときなど。
*5)REXXという言語。簡単かつ強力というお決まりの文句でうたわれている。

 さて、以上が命名規則とでもいうべきものです。ですが、英文字で名前をつけているぶんには意識する必要がないので特に覚える必要はないでしょうが、覚え ておいて損はないはずです。漢字(全角文字)は必要最低限でのみ使用してください。なるべく英数字(半角文字:ただし片仮名を除く)で命名してください。
実例で失敗談を書き記しましょう。
 私のシステムではMS-DOS5(以下DOS5)は日本語でMS-DOS6.2(以下DOS6)は英語モードで動いています(95・10現在:1月現在 では日英ともにMS-DOS6.2になった)。DOS5で作成したテキストファイルを日本語で“目的.TXT”と命名したのがそもそもの始まりで、いざ、 DOS6で印刷(別にDOS6でやる必要もないのけど)しようと思いファイルをプリンターにいざ転送しようとしたらファイル名が“u¬oI.TXT”(こ の名前を半角で表示する方法を求む)なんぞという奇怪な化け物になってしまい、結局DOS5を起動しなおしたという・・・・お間抜けな話があります。

 長いけど題が長いし結構大切なところなので
 ファイルの構造ですが電子情報学科のAWKでやっているときに使用するシーケンシャルファイルというお行儀の良いファイルだけなら説明も楽なのですがそ うもいってられません。そこで、基本の基本だけを説明するだけにします。
 ファイルはデータの集合体です。データの分割など区分けはいっさいありません。その辺はプログラムの方でやってもらいます(AWKならスペースで区分け (FS(フィールドセパレータ)による)という感じ。テキストファイルなら文字のコードが16進数で書かれていますし、プログラムなら16進数で機械語が 書かれています。それだけのことです。データが一応人間が読める範囲のものをテキスト形式といい、見るに耐えないものをバイナリー形式といいます。必ずど ちらかに分類されます。データがディスクのどこに書かれているかということをクラスター*6単位で書かれているところをディレクトリといいます。ディレク トリのどこがそのファイル名で示されているもののデータを示しているかが書かれているところをFAT(ファイル・アロケーション・テーブル)といいます。 この辺は理解しなくても結構ですが名前だけでも知っておいてください。

*6)クラスター。ディスクにおける物理的な区切り。シャッターを開ければ黒い磁気体が見えます。ここを物理的に区切った最小単位がこれです。クラスター は理論的な区切りであるセクターというものの整数倍です。この辺は結構難しいので講習での詳しい説明は省くと思うなぁ。セクターというのはこの世界(?) にくればよく耳にします。たとえるなら1024セクター/8トラック(NECでのフロッピーディスクの標準形式)とかね!!

 COPY命令は上記のデータの塊をそのまま複写することをいいます。COPYは紙やテープのコピーとは違いいっさい品質は低下しません(なにいってんだ か)。さて、これを使用しないことには別のディスクに転送することは普通できません。統合環境を作成しているなら(FILMTNやFDを使用していると か)なら話は別ですが。ファイル単位での転送を行います。フロッピーディスク単位での転送はDISKCOPYを使用します。書式(命令の仕方)は
COPY FILENAME1 FILENAME2
 です。FILENAME1というファイルをFILENAME2というファイルに転送、複写します。結構多用するので実習の時間に使えるようにしておいて ください。後述のワイルド・カードを使用すると複数のファイルを転送することも可能です。

 これで最後です。
 TYPE命令では、むかぁし、それこそろくなエディタやVIEWがなかった頃によく使用しました。今では滅多に使いません。TYPEの後にファイル名を つければファイルの内容を表示します。むろん、バイナリーやテキストの判定などというVIEWのような機能はないのでなんでも表示しますがもろにエスケー プシーケンスコード*7の影響を受けるのでバイナリーファイルを表示すると素晴らしい事になりますので注意しましょう。

*7)別名ANSIエスケープ。スクリーンの表示を制御する文字の事をいいます。文字として扱われますが、実際に表示しようとするとカーソルの位置が移動 したり、画面をクリアしたりします。

 ファイル名でCONやPRN、NULが使えないのはそのファイル名が特別な動作を示すものだからです。一部のユーザーは一行程度のファイルを作成するの にエディタを使用しない理由はこれを使用すれば超簡易エディタとして役にたつからです。
例えばtasizan.awkという名前で
{print $1+$2}
 というファイルをつくりたいとします。これをつくるのにいちいちエディタをたちあげていてはやっていられません。そこで以下のような手順でつくります。
A:\>COPY CON TASIZAN.AWK
{print $1+$2}
^Z
A:\>
 ^ZはCtrlを押したままZを押します。ファイルの終了を意味します。EOF(エンド・オブ・ファイル)ともいいます。AWKの人は特に覚えておいて ください。
 CONは入力する場合はキーボード、出力時はCRT(ディスプレイのこと)を指します(これを標準入出力装置という)。PRNは出力専用でプリンター、 AUXは入出力共にRS232Cポートを指します。LPTはプリンターを細かく指定する場合で通常は使用しません(複数のプリンターを一台のコンピュータ につなげてもしょうがない)。AUXは通常使わずにCOM1〜4を使用します。一台のコンピュータに複数の拡張装置はつけますから。NULは何もしませ ん。出力先に指定しても何も起こりません。入力に使用しても何もしません。でもよく使います。
 LPTはWindowsを使用する人は覚えておかないと設定時に困 りますのでDOSの本をよく読んで理解しておいてください。ちなみに私はDOS派です のでWindowsの事に関してはなるべく聞かないでください(今のところは)。もっとも、そこまで使いこなせているのであれば、教える(というよりは教 えてもらう)気になりますが。
実習5
 COPYとTYPEを使用でるようにする。
A:\>COPY CON TEST.TXT
This is a test data for COPY and TYPE.
^Z
A:\>TYPE TEST.TXT
;結果に注目
A:\>DIR
;結果を把握する
A:\>COPY TEST.TXT TEST2.TXT
A:\>DIR
;前の結果と比べる。特にTEST.TXTとTEST2.TXT
A:\>TYPE TEST2.TXT
;結果に注目
A:\>COPY TEST2.TXT CON
;TYPEと比べる
A:\>COPY TEST2.TXT PRN
;印刷するはずです
A:\>COPY TEST2.TXT NUL
;コンピュータの動作に注意(何もしないはず)
 以上の事で最小限の利用方法は理解できるでしょうから、これ以上の実習は行いません。各自自由にやってください。ただし、COMMAND.COMおよ び、AUTOEXEC.BAT、CONFIG.SYSは絶対にいじらないでください(見えないかも知れませんが見えなくてもいじらない)。以後起動しなく なったり、日本語が入力できない、印刷できない等の不都合が起きる原因になります。
おまけ5 DOSの種類について
 一口にDOSといえば、ほとんどの場合MS-DOSを指しますが、いままで出てきたように、あるのはMS-DOSばかりではありません。8ビット用の MSX-DOS、16ビット用ではMS-DOSを筆頭にPC-DOS、IBM-DOS、DR-DOSなどが存在しMS-DOSの圧倒的な普及率で、PC- DOSはマニア向けという感じになっています(本当は違うけど実際はそんな感じ)。なぜ、マニア向けというか?それはこだわりのない人はまずまずMS- DOSを使用しているからです。IBM-DOSはPS/55のみ(第2OAにある奴ね)で動きます。むかしは、CP/Mというのもありました(DOSとは いえないかも)。
もどる