2024/11/15
Windows7のスタートアップへバッチファイルを入れて自動起動しているプログラムがある。
バイオスの自動起動タイマーを利用して朝9時に自動起動して自動ログインしスタートアップ実行させている。
その際に、以下のように「if exist」を利用して「%FileA%」がある場合はプログラムAを起動し、無い場合はプログラムBを起動するようにしている。
————————————————————
@echo off
set FileA="D:\hogehoge.txt"
set ProgA="C:\Program Files (x86)\ProgA.exe"
set ProgB="C:\Program Files\ProgB.exe"
if exist %FileA% goto kidouA
if not exist %FileA% goto kidouB
:kidouA
%ProgA% %FileA% /option
exit /b
:kidouB
%ProgB% E:\hogehoge.txt /option
exit /b
————————————————————
ところが、先週あたりから、なぜかFile-Aのhogehoge.txtがきちんと存在しているのに、プログラムBが起動してしまう・・・なぜ??
根本的なところを調べる余裕が無いので、いつものことながら場当たり的対策を(笑)
バッチファイルにてファイルの有無判定の前に1分間の遅延をさせてみる。
Windowsでは、pingの間隔が1秒間に固定されているので、60回Pingを打てば1分間の遅延が実現できる。
————————————————————
ping localhost -n 60 > nul
————————————————————
を入れて、
————————————————————
@echo off
set FileA="D:\hogehoge.txt"
set ProgA="C:\Program Files (x86)\ProgA.exe"
set ProgB="C:\Program Files\ProgB.exe"
ping localhost -n 60 > nul
if exist %FileA% goto kidouA
if not exist %FileA% goto kidouB
:kidouA
%ProgA% %FileA% /option
exit /b
:kidouB
%ProgB% E:\hogehoge.txt /option
exit /b
————————————————————
として様子を見てみよう・・・ナムナム(-人-)