コマンドプロンプト(DOSプロンプト)の使い方

始めに

ここでは、コマンドプロンプト(DOSプロンプト)の使い方と、CUIプログラムの動かし方を解説します。コマンドプロンプトに関しては、 必要最低限の機能しか解説しませんのでご了承ください。予備知識として「ディレクトリ」や「パス」を要求しますので、 知らない方はこちらで学んできて下さい。

コマンドプロンプトの起動

Windows2000, XPにはコマンドプロンプトが、WindowsMe以前のOSにはMS-DOSプロンプトが備わっています。 起動方法は、

となっています。

カレントディレクトリ

コマンドプロンプトを起動すると、黒い画面のウィンドウが立ち上がり、

C:\Documents and Settings\Owner>

のように「"どこかのディレクトリの絶対パス">」と表示されるはずです(環境によって表示されるパスは異なります)。これは、「今現在あなたがいるディレクトリ(current directory)は、『>』の 左側に書かれたパスが表すディレクトリです。何か命令(command)を『>』の後ろに入力して下さい。」という事を表しています。例の場合は、「カレントディレクトリは『C:\Documents and Settings\Owner』です。命令を入力して下さい。」 という事を表しているわけです。
カレントディレクトリにあるファイルの名前を入力すると、そのファイルをエクスプローラーでクリックしたときと同じ効果が得られます。 例えば、カレントディレクトリにaaa.txtというファイルがある時、「>」の右側に

aaa.txt

と入力すると(入力するにはEnterキーを押す必要があります)、aaa.txtが.txtファイルに関連付けされたプログラム(普通はメモ帳)で開かれます。もちろん、カレントディレクトリにある.exeファイルの ファイル名を入力した時は、そのプログラムが起動します。例えば、カレントディレクトリにsnes9x.exeがある時は、

snes9x.exe

と入力すると、Snes9xが起動します。ちなみに.exeファイルの時は、「.exe」を省いて入力しても、同じ効果が得られます。つまり、今の場合、

snes9x

と入力しても、Snes9xが起動するわけです。

入力の際の注意

その1:ファイル名に半角スペースが入っている時、ファイル名を入力しても、そのファイルは開かれません。これは、コマンドプロンプトでは、 半角スペースが区切りの記号として使われているためです。ファイル名に半角スペースが入っている時は、入力の際にファイル名を ダブルクオテーション「"」でくくる必要があります(「"」はShift+2で入力できます)。例えば、「a b c.txt」を開く時は、

"a b c.txt"

と入力します。

その2:日本語を入力したい時は、Altキー+「半角/全角 漢字」キー(Escキーの真下にある)で日本語入力がONになります。

その3:コマンドプロンプトでは、半角アルファベットは大文字も小文字も同じ物として扱われます。つまり、「ABCDE.TXT」も「abcde.txt」も「AbCdE.tXt」も コマンドプロンプトにとっては、全て同じ入力とみなされます。

演習問題

問1.コマンドプロンプトを起動して、デフォルトのカレントディレクトリを調べなさい。
問2.デフォルトのカレントディレクトリに、エクスプローラーを利用してファイルをいろいろと置き、 コマンドプロンプトで開いてみなさい。

カレントディレクトリの変更

カレントディレクトリにあるファイルを、コマンドプロンプトで開く方法は理解できたと思います。では、このカレントディレクトリを、 違うディレクトリに変更するにはどうすれば良いのでしょうか?それにはcdというコマンド(Change Directoryの頭文字をとったもの)を使用します。
cdコマンドの使い方(usage)は、「cd "カレントディレクトリにしたいディレクトリのパス"」です(「cd」と「カレントディレクトリにしたいディレクトリのパス」の間には、 半角スペースを入れなければいけません)。例えば、C:\Documents and Settingsを、カレントディレクトリに したい時は、

cd C:\Documents and Settings

と入力します。この例では絶対パスを使用しましたが、相対パスを使用しても構いません。相対パスの基準となるディレクトリは、 カレントディレクトリです。例えば、C:\Documents and Settingsがカレントディレクトリの時は、

cd .\Owner

と入力すれば、C:\Documents and Settings\Ownerがカレントディレクトリになりますし、

cd ..

と入力すれば、C:\がカレントディレクトリになります。なお、「.\」は省略できます。
カレントディレクトリは、コマンドプロンプトを閉じるとデフォルトのものに戻ります。

入力の際の注意

その1:DOSプロンプトの場合、パスに半角スペースが含まれているとコマンドが無効になりますので、パスを「"」でくくる必要があります。 例えば、C:\Documents and Settingsをカレントディレクトリにする時は、

cd "C:\Documents and Settings"

と入力しなければいけません。
コマンドやプログラムによっては、たとえ半角スペースがパスに入っていなくても、たとえコマンドプロンプトであっても、 パスを「"」でくくらなけらばならないことがありますので、パスは「"」でくくる習慣をつけておきましょう。

その2:カレントディレクトリのあるドライブとは違うドライブにあるディレクトリをカレントディレクトリにする際は、「cd」とパスの間に、「/d」というオプション(コマンドの 実行内容を変化させるために書くもの)を記述する必要があります。例えば、カレントディレクトリがC:ドライブにある時に、D:\folderAをカレントディレクトリにしたい時は、

cd /d D:\folderA

と入力しなければいけません(「cd」と「/d」と「パス」の間には半角スペースを入れます)。ただし、この方法はコマンドプロンプトでしか使えないので、DOSプロンプトの時は、

D:

のようにまず、カレントディレクトリにしたいディレクトリがあるドライブのドライブレターを入力してから、

cd D:\folderA

と入力しなければいけません。この方法はコマンドプロンプトでも利用できます。

演習問題

カレントディレクトリをいろいろと変えてみなさい。

コピー&ペースト

コピー

コマンドプロンプトに表示される文字列をコピーするには、コマンドプロンプトのウィンドウの一番左上、つまりタイトルバーの一番左に 表示されているアイコンをクリックします。そして編集→範囲指定と選択し、マウスを使ってコピーする範囲を反転させます。再びアイコンを クリックして編集→コピーと選択すれば、反転させた範囲の文字列がクリップボードにコピーされます。
DOSプロンプトの時は、タイトルバーの下に並んでいる、範囲指定やコピーを表すアイコンをクリックしても、同じことができます。

ペースト

クリップボードにコピーされた文字列をコマンドプロンプトにペーストするには、コピーの時と同様にタイトルバーのアイコンをクリックして、 編集→貼り付けと選択します。やはりDOSプロンプトの時は、ペーストを表すアイコンをクリックして同じことができます。

簡易編集モード

コピー&ペーストをもっと効率的に行いたい時は、タイトルバーのアイコンをクリックして、プロパティを選択して下さい。立ち上がったウィンドウの 「オプション」タブ(DOSプロンプトの時は「その他」タブ)の、「簡易編集モード」にチェックを入れ、「OK」ボタンを押して簡易編集モードを有効にして下さい。 簡易編集モードが有効の時は、範囲指定を行わなくてもマウスで文字列を反転させられます。文字列を反転させた後に右クリックをすれば、 文字列をコピーすることができます。
コマンドプロンプトの場合は、右クリックでクリップボードにコピーされた文字列をペーストできます(DOSプロンプトではこの 方法は使えないので、ペーストする時は正規の手順で行って下さい)。

その他の知識

ファイルの開き方

先ほどはカレントディレクトリにあるファイルの開き方を解説しましたが、実はカレントディレクトリに無い ファイルでも、ファイル名の代わりにファイルのパスを入力すれば開くことができます。例えば、D:\FolderXにあるfile.txtを開きたい時は、

D:\FolderX\file.txt

と入力すれば、たとえカレントディレクトリがC:ドライブにあってもファイルを開くことができます。もちろん.exeファイルを起動することもできます。 また、相対パスを使っても大丈夫です・・・、というより先ほど解説した方法は単に相対パスで「.\」を省略したものを入力していただけです。 ただ、先ほど解説した方法の方が、コマンドをたくさん入力する時に便利なのであえて別の方法のように取り扱いました。

コマンド(command)

コマンドラインからコンピュータに入力する命令(を表す文字列)をコマンドといいます。先ほど解説した「cd」もコマンド(の名前)です。 コマンド(の名前)は、「>」のすぐ後ろに書くことになっています。

引数(argumentもしくはparameter)

コマンドの命令内容を具体的なものにするために、コマンドの後ろに書く文字列のことを引数といいます。この説明ではわかりにくいと思いますので、例を取って説明します。 ファイルを削除する「del」というコマンドがあります。この時、そのコマンドを入力しただけではコンピュータは困ってしまいます。「削除しろ!」とだけ命令されても、 「何を」削除すればいいのかわからないからです。そこで命令を実行させるために、削除するファイルをコマンドに教える(渡す)ことになるわけです。 例えば、カレントディレクトリにある「iranai.txt」を削除したいのなら、

del iranai.txt

のように入力します。このとき、「iranai.txt」はdelコマンドの引数として働いています。
delコマンドは、削除したいファイルが複数あれば、

del iranai.txt iranai2.txt iranai3.txt

のように、複数のファイルを引数として渡すこともできます。この時、「iranai.txt」、「iranai2.txt」、「iranai3.txt」は全て、delコマンドの引数として働いています。 つまり、3つの引数を取っているわけです。
もう一つ例を紹介します。ファイル名を変更する「rename」というコマンドがあります。例えば、カレントディレクトリにある「aaa.txt」を「bbb.txt」にリネームしたければ、

rename aaa.txt bbb.txt

と入力します。ここでは、「aaa.txt」と「bbb.txt」が、コマンドの引数として働いています。つまり2つの引数を取っているわけです。
わかりにくければ、コマンドの後ろに書かれる文字列は全て引数であり、引数どうしの間には半角スペースが入るという認識でも結構です。 普通は、そのコマンドで扱う、ファイルやディレクトリの名前やパスが引数となります。
コマンドには、引数を取らない物や、引数をいくらでも取れる物や、引数を一つは必ず渡さなければならない物などがあります。

引数の例:cdコマンドは「ディレクトリのパス」を引数に取ります。

オプション(optionもしくはswitch)

オプションとは、コマンドの実行内容を変化させるためにコマンドに渡す文字列です。注意して欲しいのは、オプションも「コマンドの後ろに書く文字列」であること、 つまり引数の一種だと言うことです。例えば、delコマンドには「/p」というオプションがあり、これをコマンドの後ろにつけて、

del /p iranai.txt

のようにコマンドを入力すると、ファイルを削除する前に確認を求められるようになります。この時、delコマンドは「/p」と「iranai.txt」の2つの引数を 取っており、そのうち「/p」はオプションとして働いている、と言えます。ちなみに、オプションはその名の通り、入力しなくてもコマンドの実行には支障がほとんど無い ことが多いです。コマンドによっては(というよりほとんどのコマンドは)、オプションを2つ以上持っていることもあります。
Windowsで使えるコマンドのオプションは「/文字列」の形を取っています。オプションはスイッチと呼ばれることもあります。

オプションの例:cdコマンドには「/d」というオプションがあります。

コマンドの記述法(usage)

コマンドごとに入力の方法は決められていますが、いずれにせよ「コマンドの名前」と「引数」の間には半角スペースを 入れなければいけません。もちろん引数が複数ある時でも、各引数の間には半角スペースを入れます。
外国のプログラムをコマンドラインで使用したい時は、付属のドキュメントから「usage」という文字列を検索すると良いでしょう。

usageはある程度決まった書き方をされています。

ファイルを引数として渡す(specify)

ファイルを引数として渡す時は、「そのファイルのパス」を引数として記述します。もちろん、相対パスを使うこともでき、 また、「.\」を省略することもできます。先ほどの、

del iranai.txt

では、カレントディレクトリにあるiranai.txtを、相対パスで「.\」を省略した形で、引数として渡しています。このような時には、ファイルの名前が 引数として働いているという見方もできます。

ワイルドカード

delコマンドで、カレントディレクトリにある.txtファイルを全て削除したいとします。この時、

del aaa.txt bbb.txt ccc.txt・・・

のように、delの後にテキストファイルのファイル名を延々と引数として与えていっても良いのですが、 これでは面倒です。しかし、「*」という記号を用いて、

del *.txt

と入力すれば、カレントディレクトリにある全ての.txtファイルを引数として与えることができます。 この「*」は、あらゆる文字列の代わりを表す、言うなれば大富豪のジョーカーのような物で、ワイルドカードと言います。例えば、

del a*.txt

と入力すれば、カレントディレクトリにある全ての、ファイル名が「a」で始まる.txtファイルが引数として与えられます。
「?」もワイルドカードとして使えますが、こちらは半角記号1文字の代わりを表します。
コマンドやプログラムによっては、ワイルドカードが使えないものもあります。

バッチファイル

メモ帳を開いて、一行につき一つのコマンドを記述し、拡張子を.batとして保存するとバッチファイルができます。 このファイルを実行することで、ファイルに記述されたコマンドが次々と実行されていきます。バッチファイルは条件分岐や 繰り返し等の構文もあるので、ちょっとしたプログラムのようなものを作ることもできます。
バッチファイルはコマンドプロンプトからもエクスプローラーからも開けますが、エクスプローラーから開いた時は、デフォルトのカレントディレクトリが バッチファイルのあるディレクトリとして扱われます。

その他の機能

その1:上下キーまたはF7キーを押すと過去に(ここで言う過去とは、今開いているコマンドプロンプトに対してのもので、 前回開いたコマンドプロンプトには当てはまりません)入力したコマンドが表示されます。

その2:コマンドプロンプト内にファイルをドラッグ&ドロップすると、そのファイルの絶対パスが表示されます。

その3:Tabキーを押すと、カレントディレクトリ内のディレクトリやファイル名が表示されます。

その4:過去に入力したコマンドの一部を記述した後に、F8キーを押すと、過去に入力したコマンドの中であてはまるものが表示されます。

その5:コマンドによっては、文字列を返すものがあります。例えば「dir」というコマンドは、引数として与えられたディレクトリ内の、ファイルの情報を表示します。 このようなコマンドの後ろに、「>tekitou.txt」のように記述してコマンドを入力すると、コマンドプロンプトに表示される文字列が書かれた、テキストファイルが カレントディレクトリに生成します。

例:

dir C:\WINDOWS >tekitou.txt

と入力すると、C:\WINDOWS内のファイル情報をまとめた、tekitou.txtという名前のテキストファイルが、カレントディレクトリに生成する。

CUIプログラムの使用

現在、ほとんどの有名なプログラムはGUIを持っていますが、単純なプログラムの中にはGUIを持たない物もかなりあります。
mplayerのように、優れたCUIプログラムも存在します。こうしたプログラムは基本的に コマンドプロンプトから起動することになります。
と言っても、今までに解説したことがわかっているのなら何の問題もありません。CUIプログラム(.exeファイル)のあるディレクトリを カレントディレクトリにしたら、後は.exeファイルのファイル名を、コマンドの名前として使えばいいだけです。コマンドの入力法は、 付属のドキュメントの「usage」を見れば書いてあるはずです。あるいは、単に.exeファイルのファイル名だけを入力すれば、こうやって入力して下さいという文章が 表示されるはずです。

hq2x

簡単なCUIプログラムとして、画像拡大フィルターソフトであるhq2xを使用してみましょう。公式サイトからhq2x.zipを ダウンロードして解凍して下さい。
解凍したフォルダの中を見ると、・・・付属のドキュメントが入っていません。これではコマンドの入力法がわかりませんが、 取りあえずコマンドプロンプトを起動して、カレントディレクトリをhq2x.exeのあるディレクトリにしましょう。コマンドの入力法がわからないので、

hq2x

とコマンドの名前だけを入力します。すると、

Usage: hq2x.exe input.bmp output.bmp
supports .bmp and .tga formats

と表示されますので、「hq2x.exe」というコマンドの後に(「.exe」は先ほど解説したとおり省略できます)、引数として二つのファイルを 記述すれば良いことがわかります。ファイル名が「input(入力)」と「output(出力)」ですから、一つ目の引数は「拡大するファイル」、 二つ目の引数は「プログラムで拡大された後に出力されるファイル」であることもわかります。
ファイルを引数として渡す時は、ファイルのパスを引数として記述するのでしたね。これによりカレントディレクトリにないファイルでも扱うことができます。
usageの下にsupports .bmp and .tga formatsとありますから、bmpファイルを指定して下さい。

実例:D:\gazouにあるsky.bmpを拡大して、D:\kakudaigazouにsky2.bmpとして保存したいのなら、

hq2x "D:\gazou\sky.bmp" "D:\kakudaigazou\sky2.bmp"

と入力します。「"」はつけなくても大丈夫ですが、習慣を付けるという観点からあえて書きました。
ちなみにこのフィルターは、線画やアニメ・漫画のスプライト拡大用のフィルターなので、写真に使っても、あまりうまく機能しませんのでご了承ください。

オプション

オプションについては先ほど解説したとおりですが、CUIプログラムのオプションは「/文字列」ではなく、「-文字列」と表記されます。
オプションの中には、コマンドが引数を取るのと同じように、引数(valueもしくはparameterもしくはsub-argument)を取るものがあります。例えば、mplayerには「-fps」というオプションがあり、 このオプションで映像を再生する際のフレームレートを設定できます。
こういう時にはどのようにオプションを記述すれば良いのでしょうか? この時も、付属のドキュメントを参照すれば書いてあるはずです。mplayerのドキュメントには、

mplayer [options] [ file | URL | playlist | - ]

がコマンドの入力の仕方(の一つ)であり、-fpsオプションの解説には、

-fps <float value>

と書かれています(-fpsと<float value>の間に半角スペースがあることに注意)から、例えば60fpsでxyz.aviを再生したいのなら、

mplayer -fps 60 xyz.avi

と入力すればよいわけです。注意して欲しいのは、「-fps 60」で一つのオプションだということです。60は オプションではなく、-fpsオプションの引数として働いています。usageに[options←複数形]と書かれているのは、複数のオプションを書けるということです。例えばmplayerには、 フルスクリーンで再生を行う「-fs」というオプションがあります(このオプションは引数を取りません)が、これを「-fps 60」の後につなげて、

mplayer -fps 60 -fs xyz.avi

と入力しても良いわけです。
数字ではなく文字列(string)がオプションの引数になる時もあります(例えばフィルタの名前等)が、常にドキュメントに従えば問題はありません。
ここでは解説しませんでしたが、オプションがオプション(sub-option)を取ることもあります。オプションのオプションが引数を取ることもあります。

設定ファイル

mplayerのように高度なソフトともなると、大量のオプションを持つようになります。これをいちいち入力していたのでは大変です。 そこでこうしたソフトは設定ファイルを設けていることが多いのです。設定ファイルはワードパッド(Wordpad)で開けるようになっています。 設定ファイルの記述の仕方は、これまたドキュメントを見てもらう他ありません。しかしたいていは次のようになっています。引数を取るオプションがある時は、

fps=60

fps 60

のように、オプションの名前とオプションの値の間に「=」や半角スペースを入れる。値を取らないオプションの時は、

fs=1

fs=0

のように、1=有効、0=無効として、値を取るオプションと同じような記述をする。
また、fpsやfs等のオプションの名前は、各行の頭に持ってくる。一行に複数のオプションを書かない、等もルールとしてあるようです。

プログラムによっては、設定ファイルをコマンドラインから書き換える物もあります。その時は、設定ファイルを書き換えるためのオプションが 用意されているはずです。
例:Mednafenと言うエミュレータには、「-soundrate x」という、サンプリングレートを設定するためのオプションが用意されています(xやyは普通、数値を表します)。 サンプリングレートを44100Hzにしたいのなら、

mednafen -soundrate 44100 game.gb

というコマンドを入力すれば良いわけです。

操作法

CUIプログラムはメニューバーを持たないため、プログラムの実行中にメニューから機能を使わせることができません(映像再生ソフトの、再生中の早送りや一時停止や音量調節など)。 そのため、こうした機能にアクセスできるキーが設定されています。どのキーにどのような機能が割り当てられているかは、付属のドキュメントを参照するしかありません。 設定ファイルをいじくることで、キー割り当てを変えることができるプログラムも存在します。

ドラッグ&ドロップ

.exeファイルに、そのプログラムで開きたいファイルをドラッグ&ドロップすれば、そのファイルを開くことができるCUIプログラムも存在します(mplayer等)。 この時、そのショートカットにファイルをドラッグ&ドロップしてもファイルを開けます。

カレントディレクトリに無くても・・・

カレントディレクトリに無いCUIプログラム(.exeファイル)でも、「そのファイルのパス」をコマンドの名前にすれば、同様に使用できます。 もちろん、相対パスを使っても大丈夫です・・・、というより先ほど解説した方法は単に相対パスで「.\」を省略したものを入力していただけです。

GUIプログラムのコマンド

GUIを備えているプログラムでも、コマンドラインをサポートしているものがあります。場合によっては、コマンドラインを使った方が楽なこともあります。

最後に

以上で終わりますが、筆者には大した知識が無いため、間違っている箇所もあると思います。細かいところは信用しないようにして下さい。 ここでは解説しませんでしたが、コマンドプロンプトからはあらゆることができます(レジストリの編集までできる)。興味があったら検索してみるといいでしょう。

トップに戻る