ホーム > コマンドプロンプト・バッチファイル リファレンス
Windowsのバッチで、10個以上の引数を渡す方法を解説します。
はじめに
Windowsのバッチファイル(*.bat)では、通常引数を9個までしか渡すことが出来ません。
本記事では、10個以上の引数を渡す方法を解説します。
普通に引数を渡してみる
特別なことはせずに、普通に10個以上(ここでは13個)の引数を渡してバッチを実行してみます。
以下は、引数の内容を表示するだけのバッチファイルです。
@echo off
echo 【1】%1
echo 【2】%2
echo 【3】%3
echo 【4】%4
echo 【5】%5
echo 【6】%6
echo 【7】%7
echo 【8】%8
echo 【9】%9
echo 【10】%10
echo 【11】%11
echo 【12】%12
echo 【13】%13
実行例です。9個までは渡した引数が認識されていますが、10個目から「A0」「A1」、、という結果になっています。
E:\Work>test.bat A B C D E F G H I J K L M 【1】A 【2】B 【3】C 【4】D 【5】E 【6】F 【7】G 【8】H 【9】I 【10】A0 【11】A1 【12】A2 【13】A3
shiftコマンドを使って引数を渡してみる
前項で普通に引数を渡すと、9個までしか認識されないことが分かりました。
ここでは、shiftコマンドを使用することで、10個以上の引数を渡す方法を説明します。
まず、shiftコマンドを1回だけ実行してみます。
@echo off
shift
echo 【1】%1
echo 【2】%2
echo 【3】%3
echo 【4】%4
echo 【5】%5
echo 【6】%6
echo 【7】%7
echo 【8】%8
echo 【9】%9
echo 【10】%10
実行結果です。普通に渡した時には、1つ目の引数は「A」でしたが、
shiftコマンドを実行した後では「B」になっています。
以下のように、shiftコマンドを実行すると、引数を1つずらすことが出来ます。
E:\Work>test.bat A B C D E F G H I J K L M 【1】B 【2】C 【3】D 【4】E 【5】F 【6】G 【7】H 【8】I 【9】J 【10】B0
上記より、引数を13個取得するには、以下のように実行する必要があります。
@echo off
echo 【1】%1【2】%2【3】%3【4】%4【5】%5
echo 【6】%6【7】%7【8】%8【9】%9
shift
shift
shift
shift
echo 【1】%1【2】%2【3】%3【4】%4【5】%5
echo 【6】%6【7】%7【8】%8【9】%9
引数は9個までしか認識しないので、13個まで取得するには、shiftコマンドを4回実行する必要があります。
以下が実行結果です。引数を13個(A~M)取得することが出来ました。
E:\Work>test.bat A B C D E F G H I J K L M 【1】A【2】B【3】C【4】D【5】E 【6】F【7】G【8】H【9】I 【1】E【2】F【3】G【4】H【5】I 【6】J【7】K【8】L【9】M
リンク
コメント