コマンドプロンプトで利用できるコマンドは非常に多い。helpで表示されるコマンドをざっと数えても100を超えるほどだ。それ以外にも、さまざまなアプリにもコマンドが付属している。まずはここで、CUIでよく行うであろう作業と、そのために利用できるコマンド名を以下に挙げてみよう。まずは表を斜め読みして、どんな機能がコマンドとして用意されているのか、ざっと眺めてみてほしい。
目的/用途 | 使用できるコマンドや使い方 |
---|---|
名前の確認 | dir |
フォルダのツリー構造の表示 | tree |
カレントフォルダの確認 | cd(引数なしでcdコマンドを実行する)。別のドライブのカレントフォルダを確認したい場合は「cd d:」のようにドライブ名をパラメータとして指定する |
カレントフォルダの変更 | cdに移動先のフォルダを指定する |
カレントドライブの変更 | C:やD:のようにドライブ名だけを入力する |
ファイルの作成 | アプリで書き込んだり、リダイレクトで新規作成したり、コピーコマンドで複製したりする |
ファイルの削除 | del(eraseでも同じ)。注:このコマンドではフォルダは削除できない |
フォルダの作成 | md(mkdir) |
フォルダの削除 | rd(rmdir) |
あるフォルダ以下のファイルとフォルダの全削除 | rd(rmdir)に/sオプションを付けて実行 |
名前の変更 | ren(rename) |
ファイル/フォルダの移動 | move |
ファイルのコピー | 一番基本的なファイルのコピーコマンドはcopy。ただしこのコマンドではフォルダはコピーできない |
フォルダやファイルをまとめてコピー | xcopyかrobocopy。xcopyが基本のコピーコマンド。robocopyは非常に多機能な、主にフォルダのバックアップに使うためのコマンド |
ファイルの属性の確認と変更 | attrib/cacls/icacls/subinacl |
テキストデータから文字列を検索する | find/findstr。findが基本的な文字列検索コマンド、findstrは正規表現が使える検索コマンド |
ファイル内容の比較 | fc/comp。fcは相違点を表示するが、compは同じかそうでないかを判断するだけ(相違点を表示しない) |
テキストデータのソート | sort |
環境変数の設定/表示 | set |
画面のクリア | cls |
ファイル内容の表示(テキストのみ) | type。注:バイナリファイルを表示させると画面が乱れたり、止められなくなったりするので注意 |
ページャ(表示を1ページずつ止めて表示させるコマンド) | more |
クリップボードへのコピー | clip |
クリップボードからの貼り付け | 特になし。ただしマウスを右クリックすると、クリップボードの内容がコマンドプロンプト画面へ入力される |
文字列の表示 | echo |
日付の表示/設定 | date |
時刻の表示/設定 | time |
OSバージョン番号の表示 | ver |
主なCUI操作とそのために利用できるコマンド |
カレントフォルダを変更するcdコマンドは、少々説明が長くなるので、あとで詳しく説明するとして、まずはこの表から、基本的なコマンドをいくつかピックアップして、コマンド利用の感覚を掴んでもらうとしよう。
新しいフォルダを作成するにはmd(mkdir)コマンドを使って「md \temp」のようにする。「md C:\temp\work\prj」のようにして、\tempと\temp\workと\temp\work\prjという複数のフォルダ階層を一気に作成することもできる。
ファイルを削除するにはdel(もしくはerase。どちらも同じ)コマンドを利用する(delではフォルダは削除できない)。例えば「del *.txt」のようにする。ただしエクスプローラの削除機能と違って、ごみ箱へも移動されずに、すぐに削除されてしまうので注意が必要だ。削除されたファイルを後で戻すことはできない(Windows OSのファイル履歴などの機能で戻すしかない)。
delのパラメーターとしてフォルダ名を指定すると、フォルダではなく、その中にあるファイルを全部削除しようとする(末尾に「\*.*」を付けた、「del temp\*.*」と同じ状態になる)。実際には、実行前に確認メッセージが表示されるのですぐには削除されないが(「Y」と入力すると実際に削除される)、注意する。
フォルダを削除するにはrdコマンドを利用して、「rd \temp」のようにする。
深いフォルダ階層のパスを指定しても、削除されるのは一番下位にあるフォルダのみである。例えば「md C:\temp\work\prj」の実行後に「rd C:\temp\work\prj」を実行すると、tempもworkも残ったまま、prjのみが削除される。
フォルダが空でなく、その中に何らかのファイルやフォルダが存在する場合はエラーになる。そんな場合は、中のファイルやフォルダをいちいち全部削除してからrdを実行してもよいが、通常は次の/sオプション付きのrdコマンドを使うと簡単にまとめて削除できる。
ある特定のフォルダ以下のフォルダやファイルをまとめて全部削除するには、rdに/sオプションを付けて「rd /s \temp」のようにする。ファイルを削除するdelコマンドでは、フォルダ階層ごと削除することはできない。
このコマンドを実行すると、実行の前に確認メッセージが表示される。「Y」と入力すると実際に削除される。
ちなみに、カレントフォルダ自身を「rd /s .」で削除することはできない。カレントフォルダを1つ以上、上のフォルダへ移動してから削除する必要がある。だがこれを利用して、「rmdir /s .」とすると(確認のための「Y」の入力は必要)、カレントフォルダ以下にあるファイルやフォルダを全てまとめて削除することができる(「.」だけは削除できずに残るため)。
ファイル名を変更するには、ren(rename)コマンドを利用する。このコマンドには、2通りの使い方がある。
単一ファイルの名前を変更するには、変更前と変更後の名前を並べて「ren file1.txt mydocument.text」のようにする。
もう1つの使い方として、ワイルドカードを使った名前変更がある。例えば「ren *.txt *.text」とすると、*.txtに該当する全ファイルの拡張子が.txtから.textに変更される。
ただしこの場合は少し注意が必要である。renに続く2つの名前指定のうち、最初のものは名前変更の対象となるファイルを表す。ワイルドカードを使うと複数のファイルが対象になる。
2つ目の名前は、変更後の名前を表すが、ここに「\」を含むパス指定は使えない(名前を変更しながら、別の場所へ移動することはできない、ということ)。ここにワイルドカードを使うと、「*」や「?」の部分には、元のファイル名中の文字が、そのまま維持される。
そのため、あまり複雑な名前変更はできず、例えば「photo*.jpg」を「旅行写真*.*」に変更するといったことはできない(「photo」の部分を「旅行写真」にすることはできないということ。5文字から4文字に短くしようとしているため。変更の前後で文字数が同じなら実行できる)。これを行いたければ、以下のTIPSのようにPowerShellなどを使う必要ある。
ファイルやフォルダを別の場所へ移動させたいなら、moveコマンドを利用する。エクスプローラでいえば、ファイルやフォルダを選択して[Ctrl]+[X]でカットして、[Ctrl]+[V]で別の場所へ張り付けて移動させることに相当する。
ファイルをコピーするコマンドはいくつかある。
ファイルをコピーするならcopyコマンドが一番基本的なコマンドである。だがcopyではファイルしかコピーできず、フォルダはコピーできない。
コピーの第1引数にはコピー元のファイル名、第2引数にはコピー先を指定する。コピー元としてワイルドカードを使うと複数のファイルが対象になるが、この場合はコピー先としてはフォルダ名かドライブ名だけを指定する。コピー元にフォルダを指定すると、末尾に「\*.*」が補われたものとして扱われる(例「copy . temp」→「copy .\*.* temp」)。
フォルダのツリー階層ごとコピーしたい場合はxcopyコマンドに/sオプションを付けて実行する(/sがないと、通常のcopyと同じ)。
なお/sオプションでは空フォルダ(中に何もないフォルダ)はコピーしない。多くの場合は、空フォルダもコピーさせる(空のフォルダも作成させる)ために、「/e」オプションも付けて使うことが多い。
このコマンドには多くのオプションがあるので、詳しくは以下の記事を参照していただきたい。
robocopyは、xcopyよりも高機能なコピーコマンドである。フォルダツリーを丸ごとコピーしたり、エラー時にリトライしたり、コピーしたファイルのログ(記録)を取ったりできるなど、主にファイルやシステム情報などのバックアップ用に作られている。ただしフォルダごとコピーするのに向くコマンドであり、そうでない用途には(一般的なコピーには)copyやxcopyの方がが向いている。
例えば拡張子.txtのファイルだけをあるフォルダから別のフォルダにコピーしたければ次のようにする。
これはごく一例で、robocopyコマンドにはさまざまな機能がある。ちょっと複雑なバックアップ用途なら、このコマンドを活用するのが早道だ。詳しくは次の記事を参照していただきたい。
これ以外にも多数のコマンドがあるが詳細は省略する。以下の記事も参照していただきたい。
Copyright© Digital Advantage Corp. All Rights Reserved.