ちょっとしたことで、バッチプログラムをつくる機会がありました。
バッチはホボ初心者ですが、少しずつ慣れていきたいですね。
1.業務要求
IoTのデ
バイスが、取得したデータを、
クラウド上のサーバへ送信するとき、
残った状態では、
クラウド上のサーバデータが異常値になります。
それを回避するために、デ
バイス内で定期的、そして終了前に 未送信の
CSVが存在するか
チェックする必要が生じました。
以下 はその バッチプログラムです。
2.プログラムのポイント
①PCの MyDocument は PCごとのフォルダパスが異なります。
それを 共通にするために
%USERPROFILE% という関数を使います。
例 SET fil=%USERPROFILE%\Documents\AAAA\BBBB
②存在数を確認し、>0 のときと =0 のときでメッセージを変える
バッチでは iif %n% gtr 0 というように gtr という比較
演算子をつかいます。
equ 等しい
neq 等しくない
gtr より大きい
geq 以上
leq 以下
lss より小さい(=未満)
3.プログラム例
--------------------------------
@echo off
rem MyDocument の 指定フォルダをfil にエントリ
rem %USERPROFILE% でMyDocument を指定
SET fil=%USERPROFILE%\Documents\AAAA\BBBB
SET /a n=0
cd /d %fil%
for %%A in (*.
csv) do ( if exist %%A (set /a n=n+1) )
if %n% gtr 0 goto CODEY
if %n% equ 0 goto CODE0
exit /b
:CODEY
@echo off
timeout 1 && echo%n%個の未送信があります
rem 未送信のときは 画面を停止する
pause
exit /b
:CODE0
@echo off
timeout 1 && echoOKです。未送信はありません
rem OK のときは 3秒後に終了する
timeout 3
exit /b
4.再利用
上は フォルダ内を検索する 基本になり、いろいろ応用できる
また ファイル数 n を 結果で返す Function もつくれる
以上