4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[バッチ] バッチでサブルーチンを書く

Posted at

もくじ
https://qiita.com/tera1707/items/4fda73d86eded283ec4f

やりたいこと

バッチで、同じようなことを複数個所でやるときに、関数っぽいものをつくりたい。

書き方

サブルーチン例.bat
rem -----------
rem 本来の処理
rem -----------
call :MYFUNC
echo returned value is %errorlevel%
pause
exit

rem -----------
rem サブルーチン
rem -----------
:MYFUNC

rem 行いたい処理をここに書く

rem 戻り値を返す
exit /b 123

@echo off
rem -----------
rem 本来の処理
rem -----------
call :MYFUNC "ABC" "DEF"
echo returned value is %errorlevel%
pause
exit

rem -----------
rem サブルーチン
rem -----------
:MYFUNC

echo 一つ目の引数は %1 です
echo 二つ目の引数は %2 です

rem 戻り値を返す
exit /b %321

注意

  • 戻り値を返すときは、exit /b 〇とする
  • 戻り値を受ける時は、%errorlevel%を見る。
  • ただし数値のみ。文字列は不可。参考
  • 文字列を返したいときは、別途変数を作ってそこに代入するようにする
  • 本来の処理の最後には必ずexitを書くこと。書かないと、そのまま下に抜けていってしまう。

参考

batノウハウ
https://qiita.com/april418/items/ebad68298c140653ad48#%E9%96%A2%E6%95%B0%E3%81%A3%E3%81%BD%E3%81%84%E3%82%82%E3%81%AE%E3%82%B5%E3%83%96%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3

Windows、バッチファイルの戻り値(ERRORLEVEL)に文字列を設定する
http://piyopiyocs.blog115.fc2.com/blog-entry-892.html

4
10
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?