ファイルシステムの基礎と基本的なコマンドの使い方:超入門コマンドプロンプト(1/4 ページ)
今回はコマンドプロンプトで利用できる主なコマンドを紹介する他、Windowsファイルシステムの基礎知識、リダイレクト/パイプなどを使った活用方法も解説する。
- 第1回「コマンドプロンプトとは」
- 第2回「ファイルシステムの基礎と基本的なコマンドの使い方」(本記事)
- 最終回「バッチコマンドで定型処理を行う」
前回はコマンドプロンプトの起動法に続き、最も基本的なコマンドの1つ、dirコマンドを例にとって、実行方法やオプションの存在についてご紹介した。ひとまず、コマンドプロンプト活用の基礎の基礎は駆け足で学んだことになるが、本当に活用するには、どんなコマンドが使えるのかにある程度精通する必要がある。使えるコマンドは多岐にわたるので、その全てをここで紹介することはできないが、利用頻度の高そうな基本的なコマンドのいくつかを紹介し、コマンドプロンプトの醍醐味について知っていただくとしよう。
またこれに加え今回は、コマンドラインをより活用するためのパスの表記方法やフォルダの扱い、コマンドの実行結果を画面に表示するのではなくファイルに保存するリダイレクト、複数のコマンドを組み合わせて使えるパイプなどについても説明する。
コマンドプロンプトを使うために必要なWindowsファイルシステムの基礎知識
コマンドプロンプト上で作業する場合、避けて通れないのがWindows OSのファイルシステムに対する理解である。GUIでは、マウスでドラッグドロップすればよいわけだが、CUIではマウスが使えないので、ファイルやフォルダの指定をテキストで行う必要がある。コマンドプロンプトを使う場合、Windows OSのファイル名を直接、しかも正確に指定する必要に迫られることが多い。
例えばユーザーのドキュメントフォルダは、エクスプローラの上では単に「ユーザー1のドキュメント」のように表示されているが、本当の場所(ファイルシステム上での実際の場所)は「C:\Users\user01\Documents」といった場所である。エクスプローラ(GUIのツール)が本当の場所を「隠蔽して」表示しているのは、ユーザーの利便性を考えてのことだ。
だがコマンドプロンプトを使う場合は、そのような隠蔽(変換措置)は行われず、Windows OSのファイルシステムの“生の”状態がほぼそのまま見えることになる(歴史的に言えば、コマンドプロンプトはエクスプローラよりもずっと前から存在していたので、互換性のために余計なことをしないようになっている)。そのため、コマンドプロンプトを使うためには、ファイルシステムのことも知っておく必要がある。
Windows OSのファイルシステムを図にすると次のようになる。
主な特徴は次の通りだ。
- 一番上には「ドライブ」という分類がある。Windows OSでは「C:」「D:」「E:」……のように呼ぶ
- 一般的には、C:がWindowsのシステムドライブとなっている
- ハードディスクを複数のドライブに分割して、C:、D:のように分けて使うこともできる。D:ドライブ以降はオプション。システムによっては存在しないこともある
- 光学ドライブやUSBメモリ、メモリカードなども別ドライブとして分離されて管理される
- ドライブの中には、フォルダの階層があり、各フォルダの中にはファイルもしくはさらにフォルダが含まれている。階層の一番上を「ルート」と呼ぶ
- ドライブごとにNTFSやFAT、exFATのようなファイルシステムのタイプを持つことができる
- 名前中のアルファベットの大文字/小文字の違いは無視される(区別されない)
ファイルやフォルダを表現する「パス名」
コマンドプロンプトでは、ファイルやフォルダを指し示すために、「パス名」という表記方法が使われる。パス名とは次のように、ドライブ名とルートを表す「\」、フォルダ階層名、ファイル名を「\」で区切って並べたものである。名前の途中に空白記号を含む場合は全体を引用符「"」で囲む。囲まないと、空白文字がコマンドやパラメータの区切りとして扱われてしまうからだ(例:「dir "C:\Program Files"」のつもりで「dir C:\Program Files」としてはいけない)。
パス名を構成する要素
パス名とは、ファイルシステム上のファイルやフォルダの場所を表す指定方法。パス名の制限は次の通り。
・空白を含む場合は全体を引用符で囲む
・最大パス長は、ドライブ名から始めて、全体で260文字まで(アルファベットも漢字文字も1文字と数える)
・大文字/小文字は区別されない
現在の場所を表す「カレントドライブ」と「カレントフォルダ(カレントディレクトリ)」
Windows OSには、「カレントドライブ」や「カレントフォルダ」(カレントディレクトリとも言うが、本記事では全てフォルダで統一する)という特別な概念がある。ファイル名やフォルダ名などの指定が絶対パス表記(後述)になっていない場合、必要に応じてこのカレントドライブやカレントフォルダの情報が補われて、最終的なファイルやフォルダの場所(パス)が決定される。
カレントドライブとカレントフォルダ
notepadとはメモ帳アプリのこと。「notepad <ファイル名>」とすると、そのファイルがメモ帳で開かれる。カレントフォルダ(この例ではC:\abc)以外の場所にあるファイルを開く場合は、その場所を表すフォルダパスの指定を前に付ける必要がある。
カレントドライブとは、パス指定にドライブ名が含まれていない場合に使われる、デフォルトのドライブ名のことである。コマンドプロンプトを起動した直後は、(何も設定していないと)C:がカレントドライブとなっている。
カレントフォルダとは、パス指定が「\(ルート)」から始まっていない場合に使われる、デフォルトのフォルダのことである。
起動直後のコマンドプロンプトウィンドウには、プロンプト記号として「C:\Users\user01>」のように表示されているが、これはカレントドライブが「C:」、カレントフォルダがC:の「\Users\user01」であることを表している。
注意したいのは、Windows OSではドライブごとに、それぞれカレントフォルダが存在する、ということだ(正確には、実行中のアプリケーションごとに、それぞれ独自のカレントドライブが存在し、さらにそのドライブごとにカレントフォルダが存在する)。
カレントドライブやカレントフォルダが異なると、同じ名前でも別のファイルやフォルダを表す。例えばC:とD:のカレントフォルダが同じ\Docだったとしても、C:file.txtとD:file.txtは別のファイルである。
絶対パスと相対パス
ドライブ名の直後にある「\」は、そのドライブのルート(一番上)を表す特別な場所である。これを含むパス名(「\」から始まっているパス名)を「絶対パス」、そうでないパス名を「相対パス」という。
パスの表記が相対パスの場合、実際のファイルの場所はカレントフォルダによって(つまり状況に応じて)変わることになるので注意が必要である。
複数のファイルにマッチするワイルドカード文字:「?」と「*」
コマンドラインでファイル名を指定する場合、複数のファイルをまとめて扱いたいことがある。例えば、「文書〜」で始まる全ファイルと、「.txt」という拡張子を持つ全ファイルをまとめてコピーしたいとか、「.log」という拡張子のファイルを全部削除したい、といった場合だ。先のdirコマンドの例では、「.txt」「.doc」「.log」の拡張子を持つファイル全部を表示していた。
こんな場合は、「ワイルドカード」という特殊な文字を使ってファイルを指定するとよい。
●任意の長さの文字列にマッチする「*」
ファイル名中で「*」を使うと、それは任意の長さの文字/文字列にマッチする。例えば「文書*」とすると「文書」で始まる全ファイルにマッチする。「文書1.doc」「文書です.docx」「文書A.txt」にマッチするが、「重要文書.doc」にはマッチしない。また、「.docx」といった特定の拡張子を持つファイルのみをマッチさせたいのであれば、「*.docx」とすればよい。単に「*」だけだと、どのファイルにもマッチする。
●任意の1文字にマッチする「?」
「*」は任意の長さの文字にマッチするが、「?」は1文字だけにマッチする。例えば「text?.txt」は「text1.txt」「text2.txt」にはマッチするが、「textABC.txt」にはマッチしない。
なおWindows OSでは、パスの途中にある*や?にはマッチしない。例えば「\*\doc」は「\user1\doc」と「\user2\doc」のいずれにもマッチしない。*や?は、パスの最後の部分にあるフォルダ名やパス名の部分でのみ利用可能となっている。
パス入力を簡単にするための方法
長いパス名を手動で間違いなく入力するのはとても困難である。そんな場合は以下の方法を使うと、パス名を簡単に入力できる。
●方法1――[Tab]キーで自動補完する
パス名を途中まで入力してから[Tab]キーを押すと、入力された名前に一致するファイル名やフォルダ名が自動的に補完入力される。複数マッチする場合は、繰り返し[Tab]キーを押せば、順番に合致するファイルが表示される。例えば「ab」まで入力してから[Tab]キーを押すと、「abc.txt」「abstract.doc」……のように、「ab」で始まる名前の項目が順次表示される。
●方法2――エクスプローラからファイルをドラッグ&ドロップする
エクスプローラでファイルやフォルダを選択し、それをコマンドプロンプト上へドラッグ&ドロップすると、フルパス名がカーソル位置に自動的に入力される。パス名中に空白文字が含まれている場合は全体が引用符で囲まれるので便利だ。
●方法3――エクスプローラでフルパス名を取得して、それをコマンドプロンプトへ貼り付ける
エクスプローラでファイルやフォルダを選択し、[Shift]キーを押しながら右クリックするとポップアップメニューに[パスとしてコピー]という項目が表示される。これを実行するとフルパス名がクリップボードにコピーされるので、それをコマンドプロンプトへ「貼り付け」ればよい。コマンドプロンプトへクリップボードの内容を貼り付けるには、コマンドプロンプト上でマウスを右クリックする。
Copyright© Digital Advantage Corp. All Rights Reserved.