【バッチ】業務効率化

PCでの作業で毎回手作業でフォルダを開いたり、作成したりしている方は必見です!

毎日の一連の単純作業を自動化できれば便利ですよね。

バッチファイルを使用することで業務の効率化・自動化ができます。

1. バッチ処理とは


バッチ処理とは、データをまとめて一括処理するための処理方法のことです。

実は身近なところでもバッチ処理が行われています。

例えば、PCの起動には環境構築や自動設定、またはアプリケーションの自動実行などにバッチ処理が用いられています。

2. バッチファイルとは


バッチファイルとは、Windows環境で実行でき、テキストファイルに処理を書いておけば、バッチファイルをクリックするだけで、書いている処理を自動で行ってくれるテキストファイルのことです。

普段の単純作業や繰り返し作業の効率化をするにはとても便利です。

必要な物もWindowsのパソコンとメモ帳があれば作成することができ、面倒な環境構築も不要です。

バッチファイルの拡張子が、「.bat」であるため、BATファイルとも呼ばれます。

3. バッチファイルの作り方

バッチファイルの作り方について紹介します。

3-1. ①メモ帳にコマンド記述

バッチファイルは、PUに標準搭載されているメモ帳のコマンドに記述するだけで作成することができます。


・メモ帳の開き方

「Windows」+「R」を押下し、「notepad」と打ち込んで、Enterを押すと、すぐに起動します。


コマンドを記述していきます。

例:PU起動後に使用できる簡単なサンプルを記載しておきます。


下記のコマンドを記述すると、メモ帳とエクセルが開きます。

@ECHO OFF

@ECHO メモ帳を開きます。
START "メモ帳" /MAX "notepad.exe"

TIMEOUT /T 3

@ECHO EXCELを開きます。
START "Excel" /MAX "excel.exe"

PAUSE

コマンドの解説

【@ECHO OFF】

基本的にはバッチの冒頭に「@echo off」をつけて各コマンドの実行結果を表示しないようにします。

「@echo off」で実行中のコマンドを非表示にします。

「echo off」はそれ以下に記述されるコマンドを表示させないコードです。

冒頭に@をつけることにより、「行内のコマンドを非表示にする」にすることができるので、冒頭の「echo off」も削除することができます。

また、「@echo off」は、コマンドプロンプトに余計な記述をしないためにも必要なのです。

「echo on」は、プロンプトを表示したいときに使用する


【START "メモ帳" /MAX "notepad.exe"】

START 【タイトル】【オプション】【実行ファイル名】

STARTは、新規にコマンドプロンプトを開くコマンドです。

・タイトル…コマンドプロンプトのタイトルに表示される文字
・オプション…どのように表示したりするのか指定する
       /MAX…ウィンドウを最大化の状態で開く


【TIMEOUT /T 3】

timeoutコマンドは、一定期間プログラム中の処理を停止させたい場合に実行を待機するコマンドです。

TIME OUT 【オプション】
※pauseコマンドは一時停止時間の指定はできませんが、timeoutコマンドでは可能です。


TIMEOUT/T 秒数…待機する時間を指定する(-1~99999秒)
        ※-1を指定するとキーが押されるまで無限に待機する。
        ※オプションの指定は必須です。
 ■補足
 「timeout /t -1」は、pauseコマンドと同等の動きをします。


【PAUSE】
pauseは、バッチプログラムの中で処理の実行を一時停止するコマンドです。

一時停止中は、下記のように、「続行するには何かキーを押してください...」
と表示されます。

処理を続行させるには、スペースキーやエンターキー等の何かしたのキーを押せばOKです。

3-2. ②拡張子の変更

メモ帳の拡張子は「.txt」なので、そのままではバッチファイルを実行することが出来ません。

バッチファイルを実行するには拡張子を「.txt」から「.bat」もしくは「.com」に変更するだけでOKです。


「名前を付けて保存」から、拡張子を変更して保存しましょう。

ファイルの名前は「ファイル名.bat」となるように変更しましょう。

うまくバッチ処理させるために文字化け対策として、名前を付けて保存する際に、ファイルの種類を「すべてのファイル」にし、エンコードは「ANSI」にしておきましょう。


定期的な業務なら、タスクスケジューラーを使用して定期的に実行!

 コントロールパネル>システムとセキュリティ>タスクのスケジュール

もしくは、

 「Windows」+「R」を押下し
 「taskschd.msc」と打ち込んで
 Enterを押すと

すぐに起動します。


タスクスケジューラーは元々Windowsに導入されているものになります。

決められた時間にバッチ処理を定期的に実行することが可能です。


まずは、タスクスケジューラーで、「トリガー」を設定しましょう。

トリガーはタスクを開始する条件のことで、どのタイミングで実行するのか選ぶことができます。

基本タスクの作成からトリガーの設定を行います。

4. コマンド紹介

●「setlocal」で環境変数を設定する

setlocalは、バッチファイルで環境変数のローカル化をするコマンドです。

定義した環境変数がそのバッチファイルにしか適用されないように「setlocal」を使用するのが一般的です。

setlocal~endlocal内で定義した環境変数は、それ以外の場所の環境変数に影響を及ぼしません。

●「rem」でコメントを記述する

「rem」の後ろに記述した文章はコメントとして扱われます。

各処理の冒頭に処理目的をコメントとして残して、何のために作ったバッチファイルなのか、分かりやすくしておきましょう。

バッチファイル作成者以外の人が見ても理解しやすくなります。

5. どのような場面で使われているのか


例を紹介します。

在庫管理

仕入れと出荷の数が合っているか、現状の商品ごとの在庫数や配置場所などは、一つずつカウントしていくと大変なので、バッチ処理で行うのがオススメです。

テストの自動化

プログラムを開発する上で、正常な動作をするか確認するためのテストが必要です。

テストの工程も何パターンも行わなければならないこともあるので、テストを自動化することで手間を削減できます。

銀行の夜間バッチ

給与の振り込みや、企業間取引などのデータが多いものは、夜間バッチで行われます。

夜間バッチ

日中では業務に支障をきたしてしまうデータ処理を夜間に行うことがあります。

夜間にバッチ処理を行うことを「夜間バッチ」と呼びます。

売上げデータの集計や計算、生産管理や物流などさまざまな業界で夜間バッチを実行することがあります。


【夜間バッチのメリット】
・大規模なデータを処理できる

・あらかじめ処理をプログラムしておくことができるので、常駐しなくてもよいので、業務効率化になる

【夜間バッチのデメリット】
・データ量が多いと処理に遅延が発生し、日中の業務に支障が出たり、システムダウンする可能性がある

6. バッチファイルとシェルスクリプトの違い


バッチファイル

バッチファイルはWindowsで使用されるファイル

対象となるOSがWindowsOS

拡張子は.bat/.cmdなど

→基本的にコマンドプロンプト上で動くものです。


ファイルのコピー、プログラムの実行、ファイルの削除などのタスクを自動化するために使用されます。

スクリプトは複数回実行できるので、定期的な作業を実行するには最適です。

また、バッチは一般的に、シェルよりも入力やプログラミングの知識が少なくて済むので、習得や使用が簡単です。

シュルスクリプト

シュルスクリプトはシェルで使用されるファイル

対象となるOSはUnix系OS

拡張子は.sh/.bashなど

→シェル上で動かすものです。

作業を自動化するために使用され、シェル言語で記述されます。

物事を素早く完了させるために使用します。

また非常に汎用性が高く、バックアップの自動化、データ分析の実行、ロボットの制御などです。


※用語理解

シェルは「プログラム」です。

シェルスクリプトはシェル(プログラム)が解読できる命令をまとめた「ファイル」のことです。

6-1. 4つのメリット

・大規模データを効率よく処理

・作業を自動化し効率よく仕事できる

・人為的ミスを減らすことができる

・時間や場所にとらわれずにデータ処理ができる

6-2. 4つのデメリット

・リアルタイムで結果を確認できない場合がある

・慣れるまで作成が大変

・データ量増加により処理が遅延する可能性がある

・作成者以外にプログラムの意図が伝わりづらい

7. まとめ

バッチファイルを使用して業務ができそうであれば、バッチファイルを作成し、効率化のいい仕事の進め方をしていきたいです。

また、タスクスケジューラーも活用しながら仕事ができたらいいなと思います。