条件によって処理を分ける

 図5の6行目は日付に合わせたディレクトリを作成する処理が記述されている(図5の(5))。ただ,すでに作成されているディレクトリと同じ名前のディレクトリを再度作成しようとするとエラーになるので,if文を使って条件分岐をしている。rundate変数で指定された名前のディレクトリが存在しないときだけ,mdコマンドでディレクトリを作成するわけだ。

図5●各パソコンがipconfigコマンドの実行結果を共有フォルダの特定のディレクトリに書き込むバッチ・ファイルの内容
図5●各パソコンがipconfigコマンドの実行結果を共有フォルダの特定のディレクトリに書き込むバッチ・ファイルの内容
[画像のクリックで拡大表示]

 if文を使った条件分岐文はバッチ・ファイルで複雑な処理をこなすためによく使われる。ここで取り上げた方法以外に,バッチ・ファイルの途中に

if %abc%=="123" (GOTO END)

と記述しておき,最終行には

:END

と記述しておくような使い方もある。こうしておくと,環境変数abcの値が123だったときはバッチ・ファイルの最終行にジャンプする。つまり,処理を中止してバッチ・ファイルを終了する。

 7行目以降は,本連載の「pingの連続実行」で解説したものとほとんど同じである。filename変数で指定した名前のファイルに区切りの線を書き込み(6),次に実行日,その次に実行時刻を書き込んでいる(7)。

 そして10行目が,このバッチ・ファイルが主目的としているipconfigコマンドの実行結果をファイルに書き込む部分である(8)。これにより,バッチ・ファイルを実行したパソコンに割り当てられたIPアドレスやサブネット・マスクなどの設定情報の詳細がファイルに保存される。

 そして12行目でnet useコマンドを使ってz:ドライブに割り当てていた共有フォルダの割り当てを解除し(9),最終行でコマンド・プロンプト画面を閉じるexitコマンドを実行している(10)。