コマンドプロンプト

リファレンス

当ページではコマンドプロンプトの操作や基本的な文法・基礎的な仕様についてまとめています。

コンソールの操作

コンソールを用いて対話的に操作する場合は、いくつか便利な操作が用意されていますので使ったほうが効率的です。

ディレクトリ・ファイルの名前補完

Tabキーを押すと、カレントディレクトリ内にあるディレクトリとファイルの名前を昇順に補完してくれます。Ctrlキーと同時に押すと逆順に補完してくれます。

実行履歴選択

矢印キーの上下を押すと過去実行したコマンドを選ぶことができます。連続して同じコマンドを入力したいときや、実行したコマンドを確認したいときなどに便利です。

コメントアウト

コマンドプロンプトにはコメントアウトするためのコマンドが用意されています。

REM ここがコメントアウトの対象です

あるいはコロン記号を用いて、コメントアウトを行います。コロン記号を2つ続けるか、あるいはコロン記号の直後に半角空白を付けてください。

::コメントアウト : コメントアウト

また、あまり褒められた方法ではありませんが、ラベルを使ってコメントアウトとすることもできます。

:コメントアウトとして代用

エコー機能

コマンドプロンプトではコマンドを実行する度に、何が実行されたかがコンソールに出力されます。これをエコー機能と言います。対話的に実行する場合はあまり気になりませんが、バッチ処理ではコンソールに出力する分だけ処理に時間がかかったり、コンソールに文字が大量に出るのが目障りだったりします。そこでエコー機能をOFFにすることが望ましいことがあります。

エコー機能のON/OFFは恒久的に切り替える方法と、特定のコマンドのみOFFにする方法の2通りあります。なお、恒久的にOFFになっている状態で特定のコマンドだけONにすることはできません。

::ON/OFF切り替え ECHO ON ECHO OFF ::文法 特定のコマンドのみOFF @コマンド 引数 ::例文 特定のコマンドのみOFF @CD Desktop

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

カレントディレクトリを変更するにはCDコマンド、あるいはPUSHDコマンド・POPDコマンドを使います。

CDコマンド・PUSHDコマンドともにカレントディレクトリを変更するコマンドですが、PUSHDコマンドは変更した履歴がディレクトリスタックというところに保存されます。そしてPOPDコマンドを実行すると、最も新しいPUSHDコマンドを実行したときのカレントディレクトリに移動します。

::CDコマンド CD 変更先 CD Desktop\folder1 ::PUSHコマンド PUSHD 変更先 PUSHD Desktop\folder1 ::POPDコマンド POPD

なお、PUSHDコマンドとPOPDコマンドの間にCDコマンドを挟むと、PUSHDコマンドを実行したときのカレントディレクトリに戻ります。

文字列の置換・切り取り

コマンドプロンプトでは取得した文字列を置換、および切り取ることができます。操作には少し癖がありますが重要な機能です。

::置換 ::文法 %変数:置換前文字列=置換後文字列% ::例文 SET text=Hello world. ECHO %text:l=1% ::切り取り ::文法 %変数:~切り取り開始位置,切り取り文字数% ::例文 SET file=main.bat ECHO %file:~-4%

特殊な変数

通常、変数は処理のなかで宣言・代入するものですが、予め特定の値が入った特殊な変数がいくつかあります。

ERRORLEVEL

変数ERRORLEVELは直前に実行した処理の結果を格納しています。基本的に処理が問題なく終われば0が格納されます。問題があれば0以外の値が格納されます。これを利用して処理が正常に終わったかを判断することができます。

::何らかの処理 IF %ERRORLEVEL%==0 ( ::正常終了時の処理 ) ELSE ( ::異常終了時の処理 )

DATE

変数DATEは現在の日付を格納しています。yyyy/mm/dd形式で格納されています。スラッシュ記号が識別子として使えない状況では、以下の処理によって記号を除去します。

%DATE:/=%

TIME

変数TIMEは現在の時刻を格納しています。hh:mm:ss.ss形式で格納されています。コロン記号が識別子として使えない状況では、以下の処理によって記号を除去します。

%TIME::=%

任意のサイズのファイルを作成

fsutil.exeを使うことで任意の大きさのファイルを作成することができます。ほとんどの人にとっては不要な機能ですが仕事などでファイルの送信テストを行うときに便利かと思われます。

::文法 fsutil file createnew 作成するファイル名 ファイルサイズをバイト指定 ::例文(10MBのファイルを作成) fsutil file createnew test.txt 10485760

ドライブの容量取得

ドライブの容量を取得する場合、DIRコマンドが用いられます。しかし、DIRコマンドでは空き容量しか分からず、全体の容量を調べるには骨が折れます。そこでf

fsutil.exe

ドライブ容量を確認するときはfsutil.exeを用いる方法がオススメです。ただし、管理者権限が必要になる場合がありますので注意してください。

::文法 fsutil volume diskfree ドライブレター ::例文 fsutil volume diskfree c: