今回は懐かしいMS-DOSのコマンドです。DOSコマンドが多く使われていたのは1980年代中頃から1995年あたりまででしょうか。Windows95の急速な普及とともに使われる事も少なくなりました。とは言えDOSコマンドも緊急時には役立つこともあります。Windowsが起動しなくなった時でもセーフモードとともにcommand.comが起動できる選択肢が残されています。これにより、内蔵ディスク内にあるデータをUSBメモリにコピーするようなこともできます。使用頻度は極めて低くなってしまったDOSコマンドですが、役立つと思われるコマンドをいくつか取り上げます。
今回もいつもと同じWindowsのデスクトップ上にsampleフォルダ(ディレクトリ)を作成しておきます。その中に使用するファイルとディレクトリを入れておきます。
command.comの起動
とりあえずDOSコマンドが使えるようにcommand.comを起動してみましょう。start(田)アイコン(ボタン)をクリックします。Windowsシステムツールのフォルダの中に「コマンドプロンプト」の項目があります。これがcommand.comです。
また検索ボックスにcommandと入力するとアプリケーションとしての「コマンドプロンプト」の項目が表示されます。(cmdでも可)
ここでは管理者として実行する必要はないので「開く」を選択して起動します。
command.comが起動します。小さいアプリケーション(MS-DOS時代ですし)なのですぐに起動します。真っ黒な画面を見て懐かしいと思う人もいるかもしれません。PC-9801VM+MS-DOS v3.3あたりを使ってましたが、当時のブラウン管表示からすると、とてもフォントも鮮明でこれも時代なのかと思ったりもします。個人的に英文フォントはIBM PC+DOSの方が好みでした。MS-DOSでなくDR-DOSや古くはCP/M,CP/M86を使っていた人もいるかもしれませんが、真っ黒い画面は今となっては懐かしいシロモノになってしまいました。
画面を消去
最初に一番簡単なコマンドを実行してみましょう。画面を消すclsコマンドです。clsと入力してリターンキーを押すと画面が消えます。
cls
カレントディレクトリの変更
カレントディレクトリを変更するにはcdコマンドを使います。これはUNIX系と同じコマンド名です。指定するパラメーターも移動先のディレクトリ名(ディレクトリパス)になります。なお、MS-DOS(日本語)だとパスの区切り記号はUNIX系の/ではなくて¥(円記号)になります(Windowsではどちらも使用可能です)。MS-DOSでも英語版だと\(半角バックスラッシュ)になります。なんで日本語と英語で記号が違うのと思う人もいるかもしれません。ここらへんは調べてみると少し面白いかもしれません(プログラマにとっては非常に面白くない話)。どちらも同じASCIIコードの5C(16進数)が割り当てられています。
cd
MS-DOSの場合、UNIX系とは異なり接続しているドライブにはc:やf:などのドライブレターが付きます。異なるドライブにディレクトリを移動する場合はドライブレター付きで指定する必要があります。一般的にa:,b:はフロッピーディスクドライブ、c:,d:あたりがハードディスク等になっています。SDカードやUSBメモリなどは、その後に続くドライブレター(f:など)が割り当てられます。
あと、ディレクトリ名が長い場合は途中まで入力したらTab(→)キーを押せば入力補完機能が働いて自動的にディレクトリ名が入力されます。
1つ上のディレクトリに移動するにはcd ..¥とします。Windowsの場合はcd ../でも1つ上のディレクトリに移動できます。
cd f:¥のようにドライブのルートに移動することもできます。ただし、存在しないドライブを指定するとエラーになります。また、ドライブはあるけどメディアが入っていないような場合もエラーになります。この場合、カレントディレクトリは変更されません。
あと、GUIでディレクトリが見えている場合はcd と入力した後にcommand.comのウィンドウ内に移動先のディレクトリ(フォルダ)をドラッグドロップすればパスが自動的に入力されます。
ディレクトリ内容の表示
次にディレクトリの内容を表示してみましょう。UNIX系でのlsに該当するコマンドです。単純にdirと入力すればディレクトリ内容が表示されます。
dir
ファイルやディレクトリ数が多い場合は縦一列でなく横にも表示して欲しいこともあります。そのような場合はdir /wと指定します。
カレントディレクトリではなくサブディレクトリや特定のディレクトリ内容を表示することもできます。デスクトップあるsampleとbackupディレクトリの内容を表示してみましょう。特定のディレクトリ内容を表示するにはdirの後に表示したいディレクトリ名(ディレクトリパス)を指定します。
ファイルのコピー
次にファイルのコピーをしてみましょう。ファイルをコピーするコマンドはcopyです。最初のパラメーターにコピー元のファイル名(ファイルパス)、2番目のパラメーターにコピー先のファイル名(ファイルパス)を指定します。
ここではデスクトップ上にあるsampleディレクトリ内にあるsample.txtをデスクトップ上にあるbackupディレクトリ内にコピーしてみましょう。ここではカレントディレクトリをデスクトップ上にあるsampleディレクトリにしておきます。ちなみに無理にディレクトリを移動しなくても絶対パス、相対パスで指定してコピーしても問題ありません。ここらへんは状況に応じてどうするか決めればよいでしょう。
cd sample
カレントディレクトリにあるsample.txtを1つ上の階層にあるbackupディレクトリへコピーします。
copy sample.txt ..¥backup
拡張子が同じファイルをまとめてコピーする場合はワイルドカードを利用します。ワイルドカードについては最後に説明します。
コピー先にすでに同名のファイルがある場合は確認のメッセージが表示されます。Yキーを押すとコピーされ上書きされます。Nを押すとコピー処理はされず中断されます。Aを押すと複数のファイルコピー時には全て上書きコピーされます。
copy sample.txt ..¥backup
なお、この確認メッセージを出したくない場合は/Yのオプションを指定します。
copy /Y sample.txt ..¥backup
copyコマンドは他にもいろいろ便利な機能があるので調べてみると面白いかもしれません。時と場合によっては思いがけず役立つこともあります。ちなみにcopyコマンドでUNIX系シェルのtouch,catコマンドと同じような処理が可能です。
ディレクトリのコピー
次にディレクトリのコピーをしてみましょう。ディレクトリのコピーはxcopyコマンドを使います。xcopyコマンドの最初のパラメーターにコピー元のディレクトリ名(ディレクトリパス)、2番目のパラメーターにコピー先のディレクトリ名(ディレクトリパス)を指定します。そして/Eのオプションを指定しておきます。
以下の例ではデスクトップ上にあるsampleディレクトリ内容をbackupディレクトリにコピーしています。
xcopy /E sample backup
ディレクトリの作成
次にディレクトリを作成してみましょう。ディレクトリを作成するにはmkdirの後に作成するディレクトリ名(ディレクトリパス名)を指定します。
以下のようにするとカレントディレクトリにtempというディレクトリが作成されます。カレントディレクトリがデスクトップの場合はデスクトップ上にtempディレクトリが作成されます。
mkdir temp
ディレクトリの削除
次にディレクトリを削除してみましょう。ディレクトリを削除するのはrdまたはrmdirコマンドです。rdまたはrmdirの後に削除したいディレクトリ名(ディレクトリパス)を指定します。オプションを指定しないとでディレクトリが空っぽでないと削除できない旨のメッセージが表示されます。これは面倒なので確認のメッセージもなくサブディレクトリまで丸ごと削除したい場合は/sと/qのオプションを同時にしてしておきます。以下のようにするとカレントディレクトリにあるtempディレクトリの内容が丸ごと削除されます。
rd /s /q temp
ファイルの削除
次にファイルを削除してみましょう。ファイルの削除はdelコマンドです。delコマンドの後に削除したいファイル名(ファイルパス)を指定します。
del sample.txt
ファイルやディレクトリ名の変更
次にファイル名を変更してみましょう。ファイル名の変更はrenまたはrenameコマンドです。最初のパラメーターに変更前のファイル名(ファイルパス)、2番目のパラメーターに変更後のファイル名(ファイルパス)を指定します。
以下の例ではカレントディレクトリにあるsample.txtファイルの名前を0000.txtに変更しています。
ren sample.txt 0000.txt
ディレクトリも同様にrenコマンドで名前を変更できます。
ren photo album