月別アーカイブ: 2020年6月

【RD,RMDIR】ディレクトリを削除する

12.【RD,RMDIR】ディレクトリを削除する

MDではディレクトリを作成しました。中にはディレクトリ名やパスを間違えて作ってしまい、エクスプローラーから削除した人はいないでしょうか?

もちろん、コマンドプロンプトでもディレクトリやファイルを削除することができます。
今回はディレクトリを削除する(ファイルを削除するコマンドは別にあります。)ためのコマンドRD(またはRMDIR)について勉強していきましょう。

RDはディレクトリを削除するコマンドです。コマンドプロンプトでのディレクトリやファイルの削除はWindowsと違って、ごみ箱といった特殊なフォルダに一時的に保存されることもありません。コマンドを実行するといきなり消えてしまい、あらかじめ準備をしていない限り、元の通りディレクトリを復活させるのは難しいので、注意が必要です。

それでは、まずRDコマンドの書式を確認しておきましょう。

書式:RD [スイッチ] [パス名]削除したいディレクトリ名

コマンド名は RDです。最低限必要なオプションとして「削除したいディレクトリ名」があります。とうぜんですが、この削除したいディレクトリ名はPCに実在しているディレクトリ名を指定します。また、パスをつけることでカレントディレクトリ以外に保存されているディレクトリを削除することもできます。

スイッチ一覧

オプションの種類機能
/s指定したディレクトリとそのサブディレクトリを、その中のファイルも含めて全て削除する。
/q「/s」オプションでディレクトリツリーを削除する際、確認メッセージを表示せずに削除する。主にバッチファイル(コマンドプロンプトで使用するプログラムファイル)内で利用する。

では、実際に使用してみましょう。まずRDを使うためには削除したいディレクトリが必要ですから、11.【MD,MKDIR】ディレクトリを作成するで勉強したMDコマンドを使用して削除用ディレクトリを作成しましょう。

今回はまず、コマンドプロンプトの練習用ディレクトリ「Application」をホームディレクトリに作成しました。

まずはMDコマンドでカレントディレクトリに「Application」を作成します。作成出来たら必ずDIRコマンドを使ってApplicationディレクトリが作成されているか確認しましょう。

MDコマンドでApplicationディレクトリを作成。DIRで実際にできているか確認
>md Application
>dir
rdディレクトリ作成後、dirで確認

ディレクトリが確認出来たらカレントディレクトリを「Application」に移動させます。

>cd Application

「Application」に削除用ディレクトリ「rdtest」を作成します。もちろんDIRでディレクトリが作成されたか確認します。

>md rdtest

これで準備は整いました。では早速作ったばかりの「rdtest」を削除してみましょう。コマンド名を指定して、削除したいディレクトリ名(今回はカレントディレクトリにあるのでそのまま指定)を指定。エンターで実行されます。

>rd rdtest

実行した後はDIRコマンドで一覧を表示させて、本当に削除されているか確認しましょう。

>dir
rdでrdtestを削除。dirで確認

これで、確かにディレクトリが削除されました。今削除した「rdtest」はどこを探しても出てきません。つまりWindowsでの操作のように、「ごみ箱」などどこかに移動されているわけでなく、本当に削除されているのです。

残念なRDコマンド

RDコマンドはスイッチを設定しない限り、空のディレクトリしか削除できません。例えば先ほどのrdtestに他のディレクトリやファイルが保存されていれば、それだけで削除できなくなってしまします。とても残念な仕様となっています。

解決方法は先に中のディレクトリやファイルを削除して、空にしてから削除するか、/sスイッチをつけて、中のディレクトリやファイルごと削除してしまいます。

最初の空にする解決方法は面倒すぎるので問題外として、後の中身ごと削除する方法は要注意です。Windowsでディレクトリを削除する場合、中が必要なければ特に注意を払うこともなく削除できると思います。これはいつでも元に戻せるからです。

RDで削除したディレクトリやファイルはもう戻っては来ません。誤って必要なファイルを削除してしまっても「後の祭り」なのです。

スイッチを使って空ではないディレクトリを削除する

「Application」ディレクトリに「rdtest」を再度作成しましょう。ヒストリー機能を使用すると簡単に作成できますし、先ほどの作業を思い出しながら作っていただくのもいいでしょう。

次にrdtestディレクトリ内にrdtext.txtを作成します。これにはメモ帳などでダミーファイルを作ってもよいのですが、今回はコマンドプロンプトの機能、「リダイレクト」機能を使って作ります。

>dir /s > rdtest\rdtext.txt

と入力して実行します。途中にある「>」記号は半角英数の「大なり」記号です。こう書くことによって、本来DIRの処理結果は画面に出力されるのですが、リダイレクト機能のおかげで、rdtestディレクトリ内にrdtext.txtという名前で保存されます。コマンドを実行したらDIRでファイルが出来たか確認をしておきましょう。

これでrdtestディレクトリには中身ができました。一応、スイッチなしでrdtestを削除しようとしてみましょう。

>rd rdtest

そうすると、「ディレクトリが空ではありません」と怒られてしまいます。そこで、/s湿地をつけてRDコマンドを実行します。

>rd /s rdtest

実行すると「rdtest、よろしいですか(Y/N)?」と聞かれますので、削除する時は「Y」を、削除しない時は「N」を入力し、エンターキーを押します。削除後、いつものように削除されているかDIRで確認します。

「Y」と答えた後、特になにもレスポンスがありません。コマンドプロンプトは正常に処理が終わったときはレスポンスを返さないのが普通です。・・・慣れましょう。
DIRコマンドで確認すると、確かに削除されています。

おまけ

今回はRDコマンドを勉強しました。スイッチのないRDコマンドは間違えて空ディレクトリを作ってしまった時くらいしか使い道のないコマンドでした。/sスイッチをつけると、中に何が入っていても削除してしまう困ったコマンドになっていました。
RDコマンドを使用する場合はパスやスイッチをしっかり確認してから実行するくらい慎重にしたほうがいいでしょう。

11.【MD,MKDIR】ディレクトリを作成する

今回は新規のディレクトリを作成してみましょう。Windowsでは新しいフォルダを作成する場合、

  • エクスプローラーを使い、目的のディレクトリ内を表示させます。
  • 右クリックし、コンテキストメニューから新規作成>フォルダを選択します。
  • 新しくできたフォルダのフォルダ名を変更します。

と、大きく分けて3つの操作が必要になります。リボン機能を使っても2番めの手順が「新しいフォルダ」ボタンを押すに変わるだけです。コマンドプロンプトでは少ない手順でより多くのディレクトリを作成することができます。

MDコマンドを使おう

書式:MD [パス名] [作成したいディレクトリ名]

MDコマンドはスイッチを待ちません。また、オプションが2つあるように見えますが、パスの最後が作成したいディレクトリ名になるので、実質一つです。ただし、作成したいディレクトリ名は省略することができません。

> MD NewDirectory

とパス名を省略して実行するとカレントディレクトリに「NewDirectory」という名前のディレクトリが作られます。他のディレクトリ内に新しいディレクトリを作成するときにはCDコマンドなどでカレントディレクトリを変更する必要があります。これは、エクスプローラーで新しいフォルダを作るのと同じ感じになります。

離れた場所にディレクトリを作る

カレントを移動しながらディレクトリを作成するのは面倒ですね。パスを使用すれば、カレント変更することなく、好きなディレクトリに新しいディレクトリを作成することができます。

> MD Documents¥test

カレントディレクトリがHomeディレクトリの時、上記のコマンドを実行すればDocumentsディレクトリにtestディレクトリが作成されます。

もちろん、絶対パスでも指定できます。絶対パスで指定すると他のドライブに新しいディレクトリを直接作成することができます。当然ながらカレントディレクトリがどこであっても大丈夫です。

> MD D:¥test

この例ではDドライブにtestディレクトリを作成しています。

複数のディレクトリを一度に作る

実は、MDコマンドは複数のディレクトリを一度に作成することもできます。オプションに複数のディレクトリ名を半角スペースで区切って実行すると一度のコマンドで好きなだけディレクトリを作成することができます。

> MD test1 test2 test3 test4

以上のコマンドを入力するとカレントディレクトリにtest1〜test4までが一度に作られます。しかし、ディレクトリが作成できる場所がカレントディレクトリだけだと不便ですね。ですので、先ほどのパスを指定してディレクトリを作成する方法と組み合わせてみましょう。

> MD Documents¥tets1 Documents¥test1¥test2

このようにすると、まず、カレントディレクトリからみて次のディレクトリになるDouments(エクスプローラー で見るとドキュメント)ディレクトリ内にtest1が作成され、次にtest1の中にtest2が作成されます。

もちろん、全く違う場所にもそれぞれディレクトリを作成できます。以下のようにするとtest1,test2はそれぞれ別のディレクトリ内に作成されます。

> MD Documents¥test1 Pictures¥test2

パスの中間ディレクトを作成する

> MD Documents¥tets1 Documents¥test1¥test2

先ほど入力したこのコマンド、test1ディレクトリの中にtest2を作成する時、どちらのオプションもカレントディレクトリからのパスを記述しています。こういう時Documents¥test2というパスを2度も入力しないといけません。面倒くさくないですか?

MDコマンドはパスの途中にあるディレクトリが作られていない時、この途中のディレクトリを自動で作成してくれる機能があります。先ほどのtest1とtest2だと、

> MD Documents¥test1¥test2

とすれば、Documentsの中にtest1、test1の中にtest2を順に作成してくれます。これはMDの拡張機能(デフォルト)で既存のディレクトリはパスとして解釈し、指定したディレクトリが存在しないとパスに書かれた順に新しくディレクトリを作成します。

まとめ

  • MD(またはMKDIR)はディレクトリを作成するコマンド。
  • オプションに作成したいディレクトリ名を指定する。
  • ディレクトリ名の前にパスをしてするとどこにでも作成できる。
  • ディレクトリ名を半角スペースを挟んで並べると複数のディレクトリを作成できる。
  • パスと組み合わせると作成したいディレクトリが自由に指定できる。
  • パスの中間のディレクトリを自動で作成することができる。

MDコマンドはパスと組み合わせることで、ディレクトリ作成に特化した、とても高機能なコマンドです。その他DIRやCDなどのコマンドと組み合わせるとさらに能力を発揮することができます。是非、色々と組み合わせて使ってみましょう。

理解度チェック

ここで問題です。下記のイメージのディレクトリをDocumentsディレクトリ内に作成してみましょう。

  • カレントディレクトリを移動しながら一つずつ作成しましょう
  • カレントディレクトリを移動せずにパスを使い一つずつ作成しましょう
  • カレント移動せず、一度に全部作ってしまいましょう

以上の3つの方法で1問できるたびにディレクトリを削除して挑戦しましょう。