バッチスクリプトで関数を作成する

MD Aminul Islam 2023年1月3日
バッチスクリプトで関数を作成する

特定のタスクの関数を作成する場合は、同じタスクのコードを何度も作成する必要はありません。この記事では、バッチスクリプトで関数を作成する方法について説明します。

バッチスクリプトで関数を作成する

関数を作成するための一般的な形式を以下に示します。

:function_name

また、この関数を呼び出す一般的な形式は、次のように、:function_nameCALL キーワードを使用することです。

CALL :function_name

次に、これを理解しやすくするために、適切な説明を含むいくつかの例を見てみましょう。

以下の例では、メッセージ Hello! It's the function... を出力する関数を作成しました。この例のコードは次のようになります。

@echo off
CALL :showmessage
EXIT /B %ERRORLEVEL%

:showmessage
ECHO Hello! It's the function...
EXIT /B 0

EXIT /B %ERRORLEVEL%という行を書いたことに気付くでしょう。この行は、関数がその仕事を終えた後にプログラムを終了することを目的としています。それ以外の場合、プログラムは関数の実行を続行します。

そして、関数を終了するために EXIT /B 0 という行が作成されました。

コードを実行すると、次の出力が得られます。

出力:

Hello! It's the function...

パラメータを使用して関数を呼び出す

次の例では、パラメーターを使用して関数を呼び出します。

関数を呼び出すための一般的な形式を以下に示します。

CALL :function_name %parameter%

また、%~1 などのパラメーターのインデックスを使用して、関数内でパラメーターにアクセスできます。

この例のコードは次のようになります。

@echo off
SET FuncVar=10
CALL :showvar %FuncVar%
EXIT /B %ERRORLEVEL%

:showvar
ECHO Your passed variable is %~1
EXIT /B 0

この例では、値 10FuncVar という名前の変数を宣言しました。その後、関数を呼び出し、この変数をパラメーターとして渡しました。

関数では、関数に渡されたパラメーターを出力しました。これで、出力は次のようになります。

出力:

Your passed variable is 10

複数のパラメーターを使用して関数を呼び出す

複数のパラメーターを操作する場合は、以下の形式に従う必要があります。

CALL :function_name %parameter1% %parameter2% %parameter3%

次の例では、関数のパラメーターとして複数の変数を渡しました。サンプルコードは、

@echo off
SET FuncVar1=10
SET FuncVar2=50
CALL :showvar %FuncVar1% %FuncVar2%
EXIT /B %ERRORLEVEL%

:showvar
ECHO Your 1st parameter is %~1
ECHO Your 2nd parameter is %~2
EXIT /B 0

%~1%~2 などのパラメータのインデックスに応じて、2つのパラメータにアクセスしたことがわかります。コードを実行すると、次の出力が得られます。

出力:

Your 1st parameter is 10
Your 2nd parameter is 50
ノート
この記事で共有したコードはバッチで記述されており、Windows CMD でのみ機能します。
著者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn