windosのバッチファイル読解メモ

 

.batファイルを読んでて、調べた構文の記号メモ。

@ アットマーク

行の先頭に付けると、コマンドプロンプトに、その行が表示されない。

@echo off

という感じでよく使われてる。echo offを実行すると、batファイルに書いた内容がコマンドラインに表示されなくなる。

但し、echo off自体は表示されるので、これ自体も表示させたくない場合、@を付けて非表示とする。

/ スラッシュ

コマンド関数の後に書くと、プログラム処理を切り替えるスイッチのように扱われる。

例えば次のようにコマンドを打つと、

set a=1+2
echo %a%

echoは、「1+2」と表示されるが、setの場合「/a」オプションを付けると、=で指定されている内容を数式として認識し、計算した結果が代入される。次のように打つと、

set /a a=1+2
echo %a%

echoは、「3」を表示する。

setの詳細はコマンドプロンプトで「help set」を実行。

% パーセント

 定義した変数名を%で囲むことで、中身を読みだせる。

例えば次のように打つと、

set a=25
echo %a%

setでaに代入された25が、echoで表示される。

%% ダブルパーセント

modとして取り扱われる。modは割った余りの計算。

例えば次のように書くと、

set /a a=17%%13
echo %a%

 aに17を13で割った余り、4が代入される。

setには、%RANDOM%という乱数を作れるオプションがあるので、例えば下記の様に書くと、

set /a a=%random%%%25
echo %a%

25で割った余り、つまり0~24までの数をランダムに生成することもできる。

但し、このRANDOMは0~32767までの整数を返すので、それ以上大きな数の乱数は作れないので注意。setはこれ以外にも、TIMEとかDATEとか色々あるので、一度helpを見ること推奨。(コマンドプロンプトで「help set」を実行。)

※コマンドプロンプトだと、%%でなく、%としないと実行できない点に注意。%%はバッチファイルに書く場合のみ。

%1 パーセント1

引数

例えば、次のように書いた、「mybat.bat」を作成し、

echo %0, %1, %2

次のように実行すると、 

D:\bat_test>mybat.bat "temp1.jpg" temp2.jpg
D:\bat_test>echo D:\bat_test\test3.bat, "temp1.jpg", temp2.jpg
D:\bat_test\test3.bat, "temp1.jpg", temp2.jpg

 %1: 引数1, %2: 引数2という風に取り扱われる。変数は%9まで。10以上の引数を渡した場合は「shift」コマンドを実行して、取り出していく。

(詳細は、help shiftを実行)

^ ハット

末尾に付けると、式が次の行に跨っていることを示している。

例えば、次のようにすると、

set a=1+2^
+3
echo %a%

echoは「6」を表示する。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です