2012年7月12日木曜日

変数 %1 = バッチファイルやCALL文の最初の引数 - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。プログラム実行関連
○Windows XP
実行中のバッチファイルを呼び出した時の、最初の引数が入っています。
但し、例外もあります。

o CALLコマンドでラベルの内容を実行している間は、CALLコマンドで指定した最初の引数が入ります。
o SHIFT コマンドを使用すると、最初の引数以外を取得する事が出来ます。
    + 詳しくは、「SHIFT = 引数(= %1など)の位置を1つずらす


**** 書式
--------
%1
--------



**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o (設定なし) = この機能は、ERRORLEVELの値を更新しません。


**** 使用例
-------- ミクさん.bat
@echo off
echo %1だよ。
--------


o 実行コマンド
--------
ミクさん.bat ミク
--------



**** 機能
o 通常は、実行中のバッチファイルを呼び出した時の、最初の引数が入っています。
o 但し、例外もあります。
    + CALLコマンドでラベルの内容を実行している間は、CALLコマンドで指定した最初の引数が入ります。
    + SHIFT コマンドを使用すると、最初の引数以外を(位置をずらして)取得する事が出来ます。
o %と1の間にキーワードを入れると、変数の取り出し方を変える事が出来ます。
    + 詳しくは、「%変数の使い方


**** メモ
o %1 では正しくファイル名を受け取れないパターンがありますので、注意します。
    + バッチファイルにファイルをドロップして起動する時で、
    + かつ、%1 に入るべきファイル名の中に、全角空白が1つ以上混じっていて、半角空白が全く入っていない場合


**** 確認したバージョン
o Windows XP Service Pack 3 (32ビット版)


==
関連ページ:
    ▼Windowsコマンド。プログラム実行関連▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > 変数 %* = %1以降の引数全て
    環境変数 PATH = 実行可能ファイルを検索する場所
    環境変数 PATHEXT = 実行可能ファイルの拡張子

変数 %* = %1以降の引数全て - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。プログラム実行関連
○Windows XP
変数 %* の中には、%1以降の引数全てが入っています。

o この変数は、バッチファイルの呼び出し時など、%1が設定されるタイミングで設定されます。
o % と * の間に修飾子を入れるとエラーになりますので、注意します。


**** 書式
--------
%*
--------



**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o (設定なし) = この機能は、ERRORLEVELの値を更新しません。


**** 使用例
-------- ミクさん.bat
@echo off
echo %*。合唱の準備をお願いします。
--------


o 実行コマンド
--------
ミクさん.bat ミクさん リンちゃん レン君 ルカ様
--------



**** 機能
o この変数は、次の時に設定されます。
    + バッチファイルを引数付きで呼び出した時
    + CALLコマンドを引数付きで呼び出した時
    + バッチファイルや CALL コマンドを終了すると、この変数の値は元に戻ります。
o % と * の間に修飾子を入れるとエラーになりますので、注意します。
    + この変数に関しては、%^n1 のように書くとエラーになります。
    + ですので、変数の内容を加工したい時は、一旦、環境変数に入れるなどしてから加工します。
    + 詳しくは、「SET = 環境変数を表示、設定、削除する。もしくは数値計算する


**** 確認したバージョン
o Windows XP Service Pack 3 (32ビット版)


==
関連ページ:
    ▼Windowsコマンド。プログラム実行関連▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > 環境変数 PATH = 実行可能ファイルを検索する場所
    環境変数 PATHEXT = 実行可能ファイルの拡張子

変数 %0 = 実行中のバッチファイル名、もしくはCALLラベル名 - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。プログラム実行関連
○Windows XP
実行中のバッチファイル自身のファイル名が入っています。
但し、CALLコマンドでラベルの内容を実行している間は、CALLコマンドで指定したラベル名が入ります。

o 実行する時に呼び出したバッチファイル名が、そのまま入ります。
o CALLコマンド実行時、ラベル名が入る変数は %0 だけです。
    + %~n0 のように加工指定した場合は、バッチファイル名が加工されますので、注意します。


**** 書式
--------
%0
--------



**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o (設定なし) = この機能は、ERRORLEVELの値を更新しません。


**** 使用例
-------- ミクさん.bat
@echo off
echo このファイルの名前は「%0」です。
echo 起きて下さい。%~n0。
--------


o 実行コマンド
--------
ミクさん.bat
--------

    + %と0の間にキーワードを入れると、変数の取り出し方を変える事が出来ます。
    + 詳しくは、「%変数の使い方


**** 機能
o 実行中のバッチファイル自身のファイル名が入っています。
    + この変数に入るファイル名は、バッチファイルの呼び出し方次第で変わります。
    + 「ミクさん.bat」だったり、
    + 「c:\ミクさん\ミクさん.bat」だったり、
    + 「..\ミクさん.bat」だったりします。
o 但し、CALLコマンドでラベルの内容を実行している間は、CALLコマンドで指定したラベル名が入ります。
    + %~n0 のように加工指定した時は、バッチファイル名が加工されますので、注意します。


**** 確認したバージョン
o Windows XP Service Pack 3 (32ビット版)


==
関連ページ:
    ▼Windowsコマンド。プログラム実行関連▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > 変数 %1 = バッチファイルやCALL文の最初の引数
    変数 %* = %1以降の引数全て
    環境変数 PATH = 実行可能ファイルを検索する場所