引数、変数とは?

BASH,bat,バッチ

引数、変数はバッチファイルでプログラミングを組んでいくと、だんだん使用する機会が増えてきます。

今回は引数について学んだので、簡単に紹介します。

引数とは?簡単な例で紹介

バッチファイルではコマンドの後に文字や数字を入れます。一般的な言語では、これを「目的語」と言いますが、バッチファイルではこれを「引数」といいます。

他にもbatファイルで引数を行うことができます。

まず下記のバッチファイルを作成します。

次にコマンドスクリプトで下記のコードを打ち込みます。

引数.bat   hikisuu

処理の結果が下記のとおり。

すこし言葉ばかりで分かりづらいので、下記のとおり図示。

引数0から9つまで使う方法

引数は通常は0から9つまで合計10の引数を使うことができます。例えば、下記のバッチファイルを作成します。

@echo off
echo 引数「%0」
echo 引数「%1」
echo 引数「%2」
echo 引数「%3」
echo 引数「%4」
echo 引数「%5」
echo 引数「%6」
echo 引数「%7」
echo 引数「%8」
echo 引数「%9」

これをメモ帳に記入し、batファイルに変換。

コマンドスクリプトで起動させます。

そうすると、0から9までの引数を指定することができました。10個以上の引数を指定したいときは「shift」コマンドを使用します。「shift」コマンドはこちらの記事で解説しています。

変数とは

変数とは数を入れておく箱みたいなイメージです。基本的には値を入れることが多いですが、文字なども入れることが可能です。

変数を設定することで、プログラミングの作業効率化やミス防止等ができるので、よく使われます。

画像に alt 属性が指定されていません。ファイル名: hz6aUjp78nPi8oRy7Pp6em7H3NyHzmI29kUY1nP9V-0TRUZ8iD-oK2OEPdqOfS_BFi1h5VAtqnBzySa1rwsM-jrjJSXw1GFXkjwZs43fM8xQA3h6CVk0oa8s0NzgTXoEfuamRCa6VoBHQKUJVmhfR7anI0TOYZatoGFskGM8txfTvIUfh6ZDyWIIPA

変数を設定するメリットは?イメージしてみる

演劇の台本をイメージします。三匹の子豚の台本は以下のとおりとします。

末っ子の豚は藁の家を1日で建てました。

末っ子の豚はお兄さん2人の豚に自慢しました。

しかし、末っ子の豚の藁の家は狼に1日で吹き飛ばされました。

この演劇で演じる末っ子の子豚が実際に佐藤さんであったり、斉藤さんであったりします。でも台本を書く場合には「末っ子の豚」という役名にしておけば、話の流れは理解できます。

このような仕組みのメリットを2つほど挙げます。

メリット1:演じる人の変更が簡単

演じる人が斉藤さんから山本さんに変わっても、「おばあさん」と役柄は変わらない。

メリット2:具体的に演じる人が決まってなくても台本が書ける

演じる人がいなくても、決まっていなくても、台本を書けることが可能です。

変更に強い仕組みということです。

変数を設定する

変数を設定するにはsetコマンドを使用します。

まず下記の2つのコードを入力します。1つは単純にechoコマンドで%ex1%を表示します。もう1つのコードはsetコマンドにて変数ex1に文字の「例だよ」を入れた後、echoコマンドで変数ex1を表示します。

echo %ex1%

set ex1=例だよ
echo %ex1%

コマンドスクリプトの結果がこちら。まずコード1は「%ex1%」と表示されました。一方でコード2の方は変数の中身の「例だよ」が表示されました。このように変数には任意の値や文字を入れることができました。

変数を呼び出すときは必ず「%」で変数を挟む必要があります。今回の例ように変数ex1を呼び出すときは、「%ex1%」になります。

図示すると下記のようになります。

次に変数を変えてみましょう。下記のコードを入力してみます。今回のコードはex1変数の値を変えてみます。

set ex1=例だよ
echo %ex1%
set ex1=変数を変えてみた
echo %ex1%

コマンドスクリプトの結果はこちら。1回目の変数の設定で、変数「ex1」の中身は「例だよ」となっています。2回目の変数の再設定で、変数「ex1」には「変数を変えてみた」となっています。このように同じ変数に違う値や文字を入れて変えることが可能です。

図示すると下記のようなイメージ。始めに「例だよ」という文字が変数「ex1」の中に入っていますが、「変数を変えてみた」という文字に置き換わっています。

コメント

タイトルとURLをコピーしました