第1回 コマンド プロンプト入門(その1):Windows 2000 活用講座 Windows 2000 コマンドライン徹底活用(4/4 ページ)
GUIだけでは面倒な定型処理やシステムのメンテナンスも、コマンドラインを使えば効率よく作業できる。
Windowsのエクスプローラを見ると分かるように、Windowsのファイル システムは階層型のフォルダ構成になっている。なおWindows 3.1のころまでは、これをフォルダといわずにディレクトリと呼んでいた。このため、コマンド プロンプト関係のコマンドや解説書などには、いまだに「ディレクトリ」という呼び方が残っているので注意しておく必要がある。コマンド プロンプトの解説をする場合には、フォルダと呼ばずに、MS-DOSの頃からの慣習どおり、ディレクトリと呼んだほうが分かりやすいかもしれない。Windowsでは、厳密にはフォルダとディレクトリは異なるものを指す用語であるからだ。フォルダには、Windowsがファイルシステムの一部であるかのように見せている仮想的なものも含まれている。例えばコントロールパネルは、それに対応するディレクトリはディスク上に存在せず、エクスプローラが作り出している仮想的なフォルダであり、またゴミ箱は、それに相当するディレクトリは存在するが、コマンド プロンプトから直接見えるものと、エクスプローラから見えるのものは異なっており、コマンド プロンプトから見えるディレクトリに格納されているデータは、Windows側のシェルであるエクスプローラが作り出して表示している。
ファイル システム内の現在位置を表わすカレント ディレクトリ
ところでエクスプローラでは、ツリー表示を使えばすべてのフォルダを一覧表示させることができるが、コマンドラインではそうはいかない。このためコマンドプロンプト環境には、「カレント ディレクトリ」(カレント フォルダ)という概念がある。カレント ディレクトリとは、コマンド プロンプトや、そこから起動されたプログラムから見て、デフォルトの処理対象となるディレクトリ(フォルダ)のことを指しており、ディレクトリ指定の付いていないファイル名は、原則としてこのカレント ディレクトリから探すことになっている。簡単にいうとカレント ディレクトリは、ファイルシステム内での「現在位置」を意味するものである。
このカレント ディレクトリを変更するには、「cd」コマンド(change directoryの略)を使い、その引数には変更したいディレクトリの位置を与える。現時点でのカレント ディレクトリを表示させたければ、引数なしでcdコマンドを実行すればよい。
C:\>cd winnt
C:\WINNT>cd
C:\WINNT
この例では、カレント ディレクトリを「WINNT」に変更し、それをcdコマンドで確認している。もっとも、デフォルトではコマンド プロンプト中にカレント ディレクトリが表示されるようになっているので、いちいちcdコマンドで確認する必要性は少ないだろう(この例ではプロンプトとしてカレント ディレクトリが表示されているが、必要ならば別のものを表示させることもできる。詳細については今後説明する)。
カレント ディレクトリにないファイルはどうやって指定するかというと、「パス(path)」というものを使って、ファイルの位置を指定する。これは、ファイル名の前に、そのファイルが含まれているディレクトリ名を付加したものである。先頭にはそのファイルが置かれているドライブ名を置き、ディレクトリツリーの最上位(これを「ルートディレクトリ」という)から、そのファイルに到達するまでに存在するディレクトリ名を「\」で順番に接続する。このようなパスの指定方法を「絶対パス」もしくは「フルパス」といい、例えば、
C:\WINNT\SYSTEM32\XCOPY.EXE
のように指定する。これは、「C:」ドライブの「WINNT」ディレクトリの下の「SYSTEM32」ディレクトリの中にある「XCOPY.EXE」というファイル名を表わしている。WindowsやMS-DOSでは、このようにディレクトリの区切りに円(「\」)マークを使うが、これは米国などのマシンでは、逆スラッシュ記号になる(文字コードは同じだが、フォントが異なるので、日本語モードでは「\」記号になる)。本来MS-DOSがお手本としたUnixでは、オプションの開始記号としてスラッシュを使っていたが、MS-DOS(Ver.1.xx)では、すでにこのスラッシュをオプションの開始を示す記号として扱っていたため、ツリー構造のディレクトリを導入するときに、スラッシュを避けて、(似た記号として)逆スラッシュを使ったためである。
以上で述べたのは絶対パスの例であったが、それとは違って、カレント ディレクトリを基準にした「相対パス」という表記方法もある。例えば、カレント ディレクトリの下に「FOO」というディレクトリがあり、その下に「BAR.TXT」というファイルがあるとしたら、
FOO\BAR.TXT
と指定するのである。また、「.」という記号でカレント ディレクトリを、「..」という記号でカレント ディレクトリのすぐ上のディレクトリをそれぞれ表わすという簡便な記法が用意されているので、例えば、上位ディレクトリにあるFILE.TXTというファイルは、
..\FILE.TXT
と表わすことができるし、カレント ディレクトリのとなりのディレクトリ「NEXT」にある「FILE.TXT」は、
..\NEXT\FILE.TXT
と表現することができる。「..」を複数使って
..\..\FILE.TXT
とすれば、これは、2つ上のディレクトリにあるFILE.TXTを表わすことになる。なおWindows 9xではこのような場合、「...」という表記方法を使って2つ上のディレクトリを表わしたり、「....」として3つ上のディレクトリを表わしたりするという方法が用意されていたが(「.」は任意の数だけ接続可能)、Windows 2000では、「.」と「..」しか利用できない。
ドライブごとに固有なカレント ディレクトリ
かつてMS-DOSでは、ドライブはパス名とは異なるもので、ドライブ名からのフルパス指定は可能だったが、cdコマンドでカレント ドライブまで変更することはできなかった。カレント ドライブを変更するためには、ドライブ名に「:」(コロン)を付けて
d:
などとして変更していたが、Windows 2000では、cdコマンド自体が拡張されて
cd /d d:\abc
のように「/d」コマンドを付けることで、カレント ディレクトリだけでなく、カレント ドライブも同時に切り替えることが可能になっている(「/d」オプションを付けないと、カレント ドライブは変更されない)。ただし少々ややこしいが、ドライブごとにカレント ディレクトリが保持されているので、例えば「C:」と「D:」の2つのドライブがあった場合、
d: Dドライブへカレント ドライブを変更
cd \ABC カレント ディレクトリを\ABCへ
c: Cドライブへ変更
cd \DEF カレント ディレクトリを\DEFへ
と、それぞれでカレント ディレクトリを指定しておき、
dir d:
とすると、「D:」ドライブの「\ABC」のディレクトリにあるファイルの一覧が表示される。前記の処理は、「/d」オプションを使うと、
cd /d d:\abc
cd /d c:\def
と同等になる。つまりカレント ディレクトリの上方は、各ドライブごとに記憶されているわけだ。
パス名の大文字/小文字/特殊記号
さて、dirコマンドでファイル名を見ると、大文字と小文字が使われているのが分かるだろう。しかし、Windowsでは、ファイル名については、大文字と小文字を区別しない。したがって、ファイルを指定するのに「file.txt」と指定しても、「FILE.TXT」や「File.txt」と指定しても同じファイルにアクセスすることができる。また、一部ファイル名やパス名には、名前の中にスペース(空白記号)が含まれたものがある。例えば、プログラムがインストールされる「Program Files」ディレクトリなどがこれに該当する。スペースは、コマンド プロンプトでは、引数やオプションの区切りに使われるため、このようなパスを指定する場合、引数全体をダブルクオートでくくる必要がある。具体的には、
dir "c:\program files\common files"
などとする。
今回のまとめ
- コマンド ライン プログラムを実行するには、「コマンド プロンプト」に対してコマンドを入力するか、あらかじめ実行するコマンドを記述したバッチ ファイルを使う。
- コマンドは、先頭にコマンド名(もしくは実行ファイル名)を置き、続いて必要な引数やオプションを並べ、最後にリターン キー(エンター キー)を入力する。
- コマンド名中の大文字と小文字の違いは無視される。
- ファイルやコマンドを表わすパス名には、ドライブ名から始まる絶対的なパス指定と、カレント ディレクトリからの相対的な指定方法の2つがある。
- カレント ディレクトリはドライブごとに維持、管理されている。
- 空白を含むパス名は、ダブルクォート記号で囲む。
Copyright© Digital Advantage Corp. All Rights Reserved.