MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 12/13 おすすめ情報に 『 SES/派遣事業者専用統合ビジネスクラウドサービス 「Cloud Staff」のクラウドサービス情報開示認定取得のお知らせ 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


バッチ作成(バッチを作動させるためのバッチ)
profile-img
投稿者: thirumaさん
投稿日:2019/06/25 14:20
更新日:2019/06/25 14:29
like-img
分類
技術
テクノロジー
Windows系サーバ
キャリア
運用・保守 / テクニカルサポート / 構築 / 設計 / PM
投稿内容

まずはこちらをご覧ください。



「test1」フォルダ内に「ファイル作成1」「ファイル作成2」「ファイル削除」のバッチが存在しています。

今回は「複数のバッチを起動させるバッチ」を作成します。


ここで、「1つのバッチの中に複数の処理をさせればいいのでは?わざわざバッチを複数に分ける意味は?」という疑問が残ります。

確かに、1つのバッチで複数の処理をさせれば余分にバッチを作成する手間が省けることもあります。しかし、上の例で説明すると


1.「フォルダ作成1」のバッチは起動したい。

2.「フォルダ作成2」のバッチは起動したくない。


という状況の時、複数の処理をさせる1つのパッチしか作成していない場合、実行することにより、余分なファイルが作成され、管理が煩わしくなります。


そのような状況の時

「フォルダ作成1」「フォルダ作成2」「フォルダ作成1・2ともに起動するパッチ」を作成することにより

1.「フォルダ作成1」のバッチは起動したい。

2.「フォルダ作成2」のバッチは起動したくない。

という要件を「使用者の判断で起動させるか否か選択する」ことにより満たし、

「フォルダ作成1・2ともに起動するパッチ」を作成することにより、どちらも起動させることが

可能となります。


以上を踏まえてバッチを作成していきます。

まずは「呼び出される側」のバッチを作成していきます。

今回作成するバッチは、「指定のフォルダ配下に今日日付でフォルダを作成する」というものです。


①「test2」フォルダ内に「今日日付」(20190625)でフォルダを作成する。

@echo off

set base_dir=C:\Users\thiruma\Desktop\test2\
set today=%date:~0,4%%date:~5,2%%date:~8,2%

rem 「test2へ今日日付でフォルダを作成する」
mkdir %base_dir%%today%

:end


バッチファイル」名を「child1」とします。


②「test3」フォルダ内に「今日日付」(20190625)でフォルダを作成する。


@echo

set base_dir=C:\Users\thiruma\Desktop\test3\
set today=%date:~0,4%%date:~5,2%%date:~8,2%

rem 「test3へ今日日付でフォルダを作成する」
mkdir %base_dir%%today%

:end


バッチファイル名を「child2」とします。



これで、起動させたい2つのバッチが完成しました。

最後にこの二つを起動させるバッチを作成します。


@echo off

cd C:\Users\thiruma\Desktop\test1
start  child1.bat
start  child2.bat

:end


以上です。簡単ですね!



ちなみに、今回は「start」コマンドで作成しましたが、「call」コマンドでも作成することは可能です。違いとしては

■START
* 新しいプロセスとして開始
* 前のバッチが正常終了orエラー終了を画面で見てOK出してから次のバッチに行きたい場合や並列実行する場合はSTART


■CALL
* 同じプロセスで開始
* 確認無しで順次実行したい場合とかはこちら


と使い分けることが可能です。


では、実際にバッチを実行してみましょう。


・バッチ起動前

 



・バッチ起動後

 


どちらにもファイルが作成されたのが確認できました。



今回は「複数のバッチを起動するバッチ」と「あえてバッチを細かい単位で分ける必要性」について

紹介しました。

ご覧いただき、ありがとうございました。


■参考

https://jj-blues.com/cms/command-start/

http://persimummies.hatenablog.com/entry/2015/04/25/003142



コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3