Windowsコマンドプロンプトの文法一覧です。他の言語をある程度知っている人はこれを読めばコマンドプロンプトの基礎をマスターしてバッチファイルを書くことができるようになっています。簡易リファレンスとしても利用できます。
1. 基礎
メッセージ表示
コメント
コメントには「REM」(Remarks の略)を用いることが多いですが、「::」(本来はラベル)でもコメントの代用が可能です。ただし IF や FOR のブロック内では「::」はエラーになるので注意してください。
変数の宣言
SET コマンドで変数(環境変数)の設定を行います。変数名と「=」の間は空白を入れず詰めて入力するようにしましょう(空白を含んだ変数名が設定されてしまう為)
変数を参照する場合は、%変数名% と「%」で囲む必要があります。
バッチファイルの実行
バッチファイルを実行するにはコマンドラインで次のようにします。
または
スクリプトに同じ名前を付けた場合は .BAT が優先されます。優先順位は SETPATHEXT にて確認できます。
出力結果をファイルに書き出すにはリダイレクトを使います。「>」は上書きで「>>」は追記になります。
2. 数値
数値の表現
SET コマンドの /A オプションを用いることで変数に数値を代入することができます。なお、代入できるのは整数(32bit 値)のみで、小数は代入できません。
数値は、16進数、8進数表記での設定も可能です。
四則演算
四則演算です。
余りの求め方です。コマンドラインで実行する場合は「%」、バッチファイルで実行する場合は「%%」を指定します。
インクリメントとデクリメント
インクリメントとデクリメントです
3. 文字列
文字列の表現
文字列には引用符(ダブルクォーテーション等)を指定する必要はありません。また「=」の後の空白も文字列として処理されます。
文字列操作
文字列を結合する方法です。
配列に分割する機能はありません。
文字列の長さを求めるコマンドはありませんが、以下のようなバッチファイルで代用可能です。結果は ERRORLEVEL にセットされます。
文字列から任意の位置の場所の文字を切り出す方法です。
4. 配列
配列はありません。
5. ハッシュ
ハッシュ変数はありません。
6. 制御文
IF コマンド
IF 文に相当します。1行に書く形式とブロック形式の構文が利用できます。
ブロック形式の IF 文には () を用います。
ただしブロック形式では以下のような書き方をするとエラーになるので注意してください。
条件の箇所には、以下のような条件を指定することができます。
比較演算子は次のいずれかになります。
条件ループ
WHILE 文はありませんが、GOTO コマンドと条件式を組み合わせることで代用可能です。
FOR コマンド
FOR /L ~ が、他の言語の FOR 文に相当します。
%変数には任意の単一文字(大文字、小文字は区別される)を指定可能ですが一般的には %i を用いることが多いようです。コマンドラインで実行する場合は「%変数」、バッチファイルで実行する場合は「%%変数」とします。
また、以下の構文により他の言語の FOR EACH ~(配列やコレクションを参照する機能)と同様の使い方も可能です。
7. サブルーチン
CALL コマンドでバッチファイルを呼び出すか、:ラベル名を指定します。引数は %1, %2, %3, ... としてセットされます。
サブルーチンの戻り値は EXIT /B [終了コード] を指定することで ERRORLEVEL として返却可能です。
8. ファイル入出力
FOR コマンドの /F オプションを利用することでファイルを解析し読み込むことが可能です。
以下のサンプルはファイルを1行ずつ読み込み出力ファイルに追記するサンプルです。コマンドラインで実行する場合は「%変数」、バッチファイルで実行する場合は「%%変数」とします。
9. 知っておいたほうがよい文法
バッチファイルでよく出てくる知っておいたほうがよい文法の一覧です。
ECHO OFF
バッチファイル実行時は不要なメッセージを表示させないのが通例です(デバッグ時は除く)。
以下の1行をバッチファイルの先頭に入れると以降のコマンドが画面上に表示されなくなります。
コマンドの前に @ を付けることによって、そのコマンド自身もコマンドプロンプトに表示されなくなります。
%~ 構文
%~ 構文は %変数 を様々な情報に展開します。以下は %0 を %~ 構文に従って展開した例です。
例えば、バッチファイルのある場所に移動するには、以下のコマンドを実行します。
参考情報
その他の基礎文法マスター
この記事は他の基本文法マスターに便乗して書いた物です。誤り等ございましたらコメント等して頂けると助かります。
- Perl基礎文法最速マスター - Perl入門~サンプルコードによるPerl入門~
- Route 477 - Ruby基礎文法最速マスター
- PHP基礎文法最速マスター | Shin x blog
- Python基礎文法最速マスター - D++のはまり日誌
- Java基礎文法最速マスター - 何かしらの言語による記述を解析する日記
- VBA基礎文法最速マスター - 何かしらの言語による記述を解析する日記
- Brainf*ck基礎文法最速マスター - 医者を志す妻を応援する夫の日記
- Haskell基礎文法最速マスター - think and error
- Bash基礎文法最速マスター - 何かしらの言語による記述を解析する日記
- VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ
- JavaScript基礎文法最速マスター - なんとなく日記
0 件のコメント:
コメントを投稿