[ホーム] - [バッチファイル サンプル一覧] - [バッチファイル内で引数が渡されているか確認するサンプルプログラム]

バッチファイル内で引数が渡されているか確認するサンプルプログラム | Windows バッチファイル






目的


バッチファイル内で自分自身に渡された引数の個数を知りたい場合もあるでしょう。
しかし調査した結果、バッチには引数の個数を簡単に調べる手段は現状でないようです。

(*)C言語の Argv のような機能は見当たりませんでした。

参考:パラメータと引数の違い
/windows/chigai/html/Programming/parameter-hikisu-chigai.html

個々の引数を確認


以下のサンプルでは %1を調べて値がある場合には引数があることを表示しています。


@if "%1"=="" (
echo "引数無し"
) else (
echo "引数有り")



以下は実行結果です。


C:\temp>test 1
"引数有り"

C:\temp>test
"引数無し"




以下は個別に %1 , %2 として一番目の引数と二番目の引数をチェックするサンプルです。
1番目の引数は %1 に、二番目の引数は %2 に格納されています。
同様に %1〜%9 まで格納されます。

以下は引数の値をチェックするサンプルです。


if %1 == 0(
  echo "一番目の引数は0"
)

if %2 == 0 (
  echo "ニ番目の引数は0"
)

引数が空かどうかを確認する場合にはダブルクォートで囲います。

if "%1"=="" (
@echo エラー:引数が指定されていません
)




引数の数を確認する


前述したとおり、Windows バッチファイルでは引数の数を取得することはできません。
以下のような工夫が必要です。2番目の引数が"空ではないか"どうか確認しています。not と ="" の組み合わせで2番目の引数が指定されているか確認します。
もし2番目の引数が空ではないなら、少なくとも引数が2個以上指定されていることが分かります。


@rem 2番目の引数が存在するか確認する
if not "%2"=="" (
echo "少なくとも2個以上の引数が指定されています。引数は1個のみ指定してください。"
exit /b 1
)










本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)

[ホーム] - [バッチファイル サンプル一覧]