ja:windows:コマンドプロンプトとバッチファイルのいろいろ
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
ja:windows:コマンドプロンプトとバッチファイルのいろいろ [2014/06/11 01:39] – 作成 makoto | ja:windows:コマンドプロンプトとバッチファイルのいろいろ [2014/06/11 09:15] (現在) – makoto | ||
---|---|---|---|
行 15: | 行 15: | ||
すると、出力は以下のように変化する。< | すると、出力は以下のように変化する。< | ||
テスト | テスト | ||
- | </ | ||
- | ===== ECHOのいろいろ ===== | ||
- | ECHO文はコマンドライン引数として与えられた文字列を画面に出力するだけ、という至ってシンプルなコマンド。\\ | ||
- | なのだけれど、それ以外にもいくつかできることがある。 | ||
- | ==== プロンプト文字列の表示/ | ||
- | コマンドプロンプトにしても、バッチファイルにしても、起動直後はプロンプト文字列(**C: | ||
- | このプロンプト文字列の表示/ | ||
- | * プロンプト文字列を表示する< | ||
- | ECHO ON | ||
- | </ | ||
- | * プロンプト文字列を表示しない< | ||
- | ECHO OFF | ||
- | </ | ||
- | バッチファイルを作成する際は、前述の**@**も併用して、< | ||
- | @ECHO OFF | ||
- | |||
- | 後続処理 | ||
- | </ | ||
- | のようにしておくと、不必要な表示は出なくなる。 | ||
- | ==== 現在のプロンプト文字列の表示状態を確認する ==== | ||
- | 前述の**ECHO ON**、**ECHO OFF**によって、プロンプト文字列の表示状態を変更することが可能だが、現在表示設定なのか、非表示設定なのかを確認する場合は、コマンドライン引数無しでECHOを実行すると良い。\\ | ||
- | ……そんなことして確認しなくても、画面見りゃすぐわかるんだけれども。 | ||
- | * ONの時< | ||
- | C: | ||
- | ECHO は <ON> です。 | ||
- | </ | ||
- | * OFFの時< | ||
- | ECHO | ||
- | ECHO は <OFF> です。 | ||
- | </ | ||
- | ==== 空白行を出力する ==== | ||
- | ECHO文で空白行を出力したい場合は少し特殊で、ECHO文に続けて「**.(ピリオド)**」を入力する。 | ||
- | <code winbatch> | ||
- | C: | ||
- | |||
- | C: | ||
- | </ | ||
- | 「**続けて**」がミソ。コマンドライン引数としてスペースを挟むのはNG。 | ||
- | ===== 変数を使う ===== | ||
- | コマンドプロンプト、及びバッチファイルでは変数が利用できる。\\ | ||
- | ただし、変数はすべて「**環境変数**」なので、注意する。\\ | ||
- | **PATH**を始め、**SET**コマンドを実行した時に出力される変数は、すべて利用中なので、これらと同じ名前を使うとシステム側に影響がでる可能性がある。< | ||
- | C: | ||
- | ALLUSERSPROFILE=C: | ||
- | APPDATA=C: | ||
- | CLASSPATH=. | ||
- | ……中略…… | ||
- | USERPROFILE=C: | ||
- | windir=C: | ||
- | </ | ||
- | ==== 変数を作って値を代入する ==== | ||
- | 変数を作成し、値を代入するには**SET**コマンドを使用する。 | ||
- | * **書式**< | ||
- | SET 変数名=値 | ||
- | </ | ||
- | * **例**< | ||
- | SET HOGEHOGE=テストデータ | ||
- | </ | ||
- | === 変数への値の代入をユーザーの入力値とする === | ||
- | 任意の変数へ代入する値を、ユーザーの入力した文字列にする場合は**/ | ||
- | * **例**< | ||
- | SET /P HOGEHOGE=値を入力してください | ||
- | </ | ||
- | 上記のようにすると、画面上に「値を入力してください」と文字列が表示され、ユーザーの入力を待機するようになる。\\ | ||
- | ユーザーが文字列を入力し、Enterキーを押下すると、入力された文字列(Enterは除く)が変数の値として代入される。 | ||
- | ==== 変数の値を使用する ==== | ||
- | 変数に格納された値を使用する場合は、基本的に**%変数名%**と記述する。 | ||
- | * **バッチファイル**< | ||
- | SET HOGEHOGE=テストデータ | ||
- | ECHO HOGEHOGEは" | ||
- | </ | ||
- | * **実行結果**< | ||
- | HOGEHOGEは" | ||
</ | </ | ||
===== 終了する ===== | ===== 終了する ===== | ||
行 104: | 行 31: | ||
と出力されて終了する。"// | と出力されて終了する。"// | ||
==== 終了コード ==== | ==== 終了コード ==== | ||
- | …後ほど。 | + | **EXIT**を実行する際は、コマンドライン引数に数値を渡す事で、その値を終了コードとして返す事ができる。\\ |
+ | 作成しているバッチファイルが別のプログラムやバッチファイルから呼び出される場合、終了コードを正しく返すかどうかは重要なので、ちゃんと記述する方がよい。 | ||
+ | <code winbatch> | ||
+ | EXIT 0 | ||
+ | </ | ||
+ | **0**は**正常終了**を示す。\\ | ||
+ | それ以外については、**異常終了**となる。 | ||
ja/windows/コマンドプロンプトとバッチファイルのいろいろ.1402450747.txt.gz · 最終更新: 2014/06/11 01:39 by makoto