ファイルやフォルダを作成すると、Windows OSでは、長いファイル名だけではなく、8.3形式の短いファイル名も同時に作成する。アプリケーションによっては、この8.3形式しか受け付けない場合がある。8.3形式のファイル名を調べるには、dir /xコマンドを実行する。
対象OS:Windows 2000 / Windows XP / Windows Server 2003
Windows OSやMS-DOSなどで利用されているファイルシステムでは、空白や記号などを含む長いファイル名を利用できるが、当初のMS-DOSシステムでは、8.3形式の短い名前しか利用できなかった。8.3形式とは、ファイル名(ベース名)部分が最大で8文字、拡張子部分が最大で3文字という、非常に制限された形式のファイル名の規則のことをいう。例えばCOMMAND.COMやCONFIG.SYSはこの規則に合致した形式のファイル名の例である。
現在では、8.3形式ではなく、より自然な長いファイル名を利用できる。ただし互換性のために、(デフォルトでは)ファイルシステム中には長いファイル名と8.3形式の短いファイル名の両方が維持・管理されている(8.3で間に合う場合は片方しか保持していない)。そのため、ユーザーがどちらのファイル名を利用しても、同じように動作するようになっている。
例えば「C:\Program Files」は長いフォルダ名の例であるが、これに対して「C:\PROGRA~1」という短いファイル名も同時に割り当てられている。そのため、エクスプローラで「C:\Program File」を開いても、「C:\PROGRA~1」を開いても、どちらも同じフォルダが表示されるようになっている。
Windows OSでは、8.3形式のファイル名を利用する必要はほとんどないだろうが、場合によってはこれを意識しなければならないことがある。
例えばコマンドプロンプト上で、ほかのプログラムを(優先度を変更して)起動するためのstartコマンドでは、空白文字を含むような長いファイル名では正しく動作せず、8.3形式のファイル名を指定しなければならない(TIPS「起動するプログラムの優先度を変更する方法」参照)。
例えば「C:\Program Files\Movie Maker」フォルダにインストールされているmoviemk.exeアプリケーションを起動するために、次のようなコマンドを実行したとする(startコマンドを利用する場合は、/highや/lowなどのオプションを指定するのが普通であるが、ここでは説明を簡単にするために省略している)。
C:\>start "C:\Program Files\Movie Maker\moviemk.exe"
これを実行しても、新しいコマンドプロンプトが開くだけで、moviemk.exeは実行されない。これを正しく実行するためには、フォルダ名に含まれている空白文字を避けるために、全て8.3形式で次のように指定しなければならない(しかもファイル名を囲んでいるダブルクオート記号も付けてはいけない。大文字/小文字は任意)。
C:\>start C:\PROGRA~1\MOVIEM~1\moviemk.exe
このようなケース以外にも、非常に古いアプリケーション(Windows 3.xやMS-DOSの時代に作られたようなアプリケーション)を利用する場合にも、8.3形式のファイル名が必要になる場合がある。
本TIPSでは、8.3形式の短いファイル名を調べる方法について解説する。
あるファイル名に対する、8.3形式の短いファイル名を表示させるには、コマンドプロンプト上で「/x」オプションを付けてdirコマンドを実行すればよい。
(2)のところに表示されているのが8.3形式の短いファイル名である(元の名前が8.3形式で表現できる場合は、この部分には表示されない)。短い名前を作る規則は、基本的には「6文字+“~”+数字」であるが、場合によっては異なる名前にマッピングされることもあり、常に同じというわけではない。
一般的には、Windows OSのインストール直後に作成されている「C:\Program Files」は「C:\PROGRA~1」であることがほとんどである。ただし、フォルダの作成順序によっては別の番号や名前になっていることがあるので、使用前には必ず確認する必要がある。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.