文書の過去の版を表示しています。
目次
コマンドプロンプトとバッチファイルのいろいろ
Windowsのコマンドプロンプトやバッチファイルでの処理等について。
アットマーク
アットマーク「@」はコマンドとプロンプト文字列の非表示化を行う。
以下の様なバッチファイルがデスクトップにあるとき、
ECHO テスト
出力は以下のようになる。
C:\Users\hogehoge\Desktop>ECHO テスト テスト
この時、バッチファイルのECHO文の前に@を入力し、以下の様に変更する。
@ECHO テスト
すると、出力は以下のように変化する。
テスト
ECHOのいろいろ
ECHO文はコマンドライン引数として与えられた文字列を画面に出力するだけ、という至ってシンプルなコマンド。
なのだけれど、それ以外にもいくつかできることがある。
プロンプト文字列の表示/非表示
コマンドプロンプトにしても、バッチファイルにしても、起動直後はプロンプト文字列(C:\Users\hogehoge>みたいなやつ)は表示するのがデフォルト。
このプロンプト文字列の表示/非表示の制御をECHO文で行う事ができる。
- プロンプト文字列を表示する
ECHO ON
- プロンプト文字列を表示しない
ECHO OFF
バッチファイルを作成する際は、前述の@も併用して、
@ECHO OFF 後続処理
のようにしておくと、不必要な表示は出なくなる。
現在のプロンプト文字列の表示状態を確認する
前述のECHO ON、ECHO OFFによって、プロンプト文字列の表示状態を変更することが可能だが、現在表示設定なのか、非表示設定なのかを確認する場合は、コマンドライン引数無しでECHOを実行すると良い。
……そんなことして確認しなくても、画面見りゃすぐわかるんだけれども。
- ONの時
C:\Users\hogehoge>ECHO ECHO は <ON> です。
- OFFの時
ECHO ECHO は <OFF> です。
空白行を出力する
ECHO文で空白行を出力したい場合は少し特殊で、ECHO文に続けて「.(ピリオド)」を入力する。
C:\Users\hogehoge>ECHO. C:\Users\hogehoge>
「続けて」がミソ。コマンドライン引数としてスペースを挟むのはNG。
変数を使う
コマンドプロンプト、及びバッチファイルでは変数が利用できる。
ただし、変数はすべて「環境変数」なので、注意する。
PATHを始め、SETコマンドを実行した時に出力される変数は、すべて利用中なので、これらと同じ名前を使うとシステム側に影響がでる可能性がある。
C:\Users\hogehoge>SET ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\hogehoge\AppData\Roaming CLASSPATH=. ……中略…… USERPROFILE=C:\Users\hogehoge windir=C:\Windows
変数を作って値を代入する
変数を作成し、値を代入するにはSETコマンドを使用する。
- 書式
SET 変数名=値
- 例
SET HOGEHOGE=テストデータ
変数への値の代入をユーザーの入力値とする
任意の変数へ代入する値を、ユーザーの入力した文字列にする場合は/Pオプションを使用する。
- 例
SET /P HOGEHOGE=値を入力してください
上記のようにすると、画面上に「値を入力してください」と文字列が表示され、ユーザーの入力を待機するようになる。
ユーザーが文字列を入力し、Enterキーを押下すると、入力された文字列(Enterは除く)が変数の値として代入される。
変数の値を使用する
変数に格納された値を使用する場合は、基本的に%変数名%と記述する。
- バッチファイル
SET HOGEHOGE=テストデータ ECHO HOGEHOGEは"%HOGEHOGE%"です。
- 実行結果
HOGEHOGEは"テストデータ"です。
終了する
コマンドプロンプトを終了するには、EXITコマンドを実行する。
また、バッチファイルの終了については、バッチファイルの内容がすべて実行されるか、EXITが読み込まれた時点で終了する。
@ECHO OFF ECHO データ1 ECHO データ2 EXIT ECHO データ3
上記のバッチファイルを実行すると、
データ1 データ2
と出力されて終了する。“ECHO データ3“の部分はEXITの後であるため、実行されない。
終了コード
…後ほど。