バッチファイル入門講義

入門講義【第10章】 ラベルでプログラムをまとめる

本章では、「ラベル」について解説していきます。

今までのプログラムは書いたコードを上から順に実行していくプログラムでした。「ラベル」という機能を用いると、自由に実行する行を移動することができます

この機能を使って処理をまとめて一つにすることでコードをスッキリとまとめることができたり、同じような処理を何度も書かなくてよくなる「関数化」という概念を導入できます。

第10章 第10章の内容

その他の関連しそうな記事

 

ラベルを使って実行する行を移動する

以下のコードを記述したバッチファイル「label_test_1.bat」を作成して下さい。

3行目の「goto」が指定した行に飛ぶコマンドです。「goto」の後に、飛ばす先を指定します。ここでは「:label」を指定していますが、これが「ラベル」です。すなわち7行目の「:label」ラベルに移動します。

移動後は通常通りそこから下のコマンドが順に実行されます。よって、5行目の「echo 呼び出されない」の行は実行されないことになります。

実行してみましょう。

第10章 label_test.batの実行結果

コマンドプロンプトには「呼び出される」のみ表示されて、「呼び出されない」は表示されないことが確認できたと思います。

 

ラベルの使いすぎに注意

では、このプログラムを編集して、「呼び出される」のあとに「呼び出されない」と出力するにはどうしたらよいでしょう。それは以下のようになります。

「呼び出される」を表示するまでは一緒ですが、その後に「goto :label2」で「echo 呼び出されない」の直前に戻ります。これだけだと、上から順にコマンドが実行されるので、再び「echo 呼び出される」が実行されてしまいます。なので、「呼び出されない」が表示されたあとは、「:goto :end」で行の最後まで飛んでプログラムを終了させます。

このプログラムは実行する行があちこちに飛んで複雑です。このように「goto」コマンドを多用することは、プログラムを非常に分かりにくくするので避けるべきです。

 

if文と併用する

goto文はよくif文と組み合わせて使われます。

以下のバッチファイル「make_or_del.bat」は、「file.txt」ファイルが存在すれば削除し「file2.txt」ファイルを新しく作る。なければ空の「file.txt」ファイルを作るというプログラムです。

ラベル「:eof」は特別です。飛ばす先の「:eof」ラベルを書かなくてもプログラムの最後まで無条件で飛んでくれます。

15行目や20行目の「type nul > file.txt」は空のファイルを作るときのコマンドで、

type nul > 空のファイル名

と書きます。

 

このプログラムは、

と書いたのと同じことですが、もしif文の( )中の処理が長くなると全体のプログラムの流れが分かりづらくなります。そんなときはgoto文を使うことで、分かりやすいプログラムを書くことができるようになります。

また、同じ処理を呼び出したいときは「goto :[ラベル名]」と書けばよく、同じプログラムを再び書く必要がないことも大きなメリットです。バッチファイル「make_or_del.bat」でいうと、「「file.txt」ファイルが存在すれば削除し「file2.txt」ファイルを新しく作る」操作をもう一度、どこかで書きたい場合、「goto :delmk」と書いて「:delmk」ラベルを呼び出すだけでよいのです。

このように処理をまとめておいて、いつでも呼び出せる状態にしておくことを「関数化する」と言います。

 

第10章 まとめ

本章ではgoto文で任意の行に飛べることを学びました。

ただし、「goto」の乱用には気をつけましょう。プログラムが複雑になり、分かりづらくなります。

goto文はif文とよく併用され、if文の( )内の処理が長くなるときにラベルを使うとプログラムをスッキリさせることができます。また、「関数化」によって同じ処理を行いたい場合はラベルを呼び出すだけでよくなります。

【入門講義 第10章のまとめ】

  • その1 「go to」コマンドで任意の行へ移動する。
  • その2 ラベルを使うことで、プログラムをスッキリできる
  • その3 同じ処理はラベルを呼び出すだけでよい(関数化)

なにか不明な点やうまくいかない場合は、「お問い合わせフォーム」からお気軽にお問い合わせ下さい。

 

次章では、ファイル名を一括変換する方法を紹介します。

第11章 ファイル名を一括変換する

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す