【Automation】マニュアルモードとオートモードの切替方法
仕事で、ちょっとしたプログラムとプログラムの連携を行っております。既存仕様を改良し、マニュアルモードからオートモードにし、いつでも切替られるようにしたいです。PC環境はWindows10です。
「既存仕様(マニュアルモード)」と「作りたい仕様(オートモード」について、以下をご覧ください。
■既存仕様(マニュアルモード):
Manual.batの内容:
フォルダAに、 .txtファイルが生成されたら、
「プロセスAが完了しました」とユーザーにメールする
※ユーザーはこのメールを見たら、プロセスBのスタートボタンを押す。
この仕様を「マニュアルモード」と呼ぶ。
具体的には、タスクスケジューラ-で、5minごとにManual.batを実行し、フォルダAにファイルがあるか確認し、あったらメールを飛ばす。
実際にプロセスAが完了し.txtファイルがあるのは、数日に一回くらいの頻度。プロセスAをスタートしなければ、メールは飛ばないので、割とメンテなどしやすい暇のあるプログラム。
■これから作りたい仕様(オートモード):
・フォルダAに、 .txtファイルが生成されたら、フォルダBにその.txtファイルをコピーし、それをトリガーにプロセスBのプログラムが作動する。「オートモードで、プロセスAが完了し、プロセスBが開始しました」とユーザーにメールする。これを「オートモード」と呼ぶ。
・オートモードをデフォルトとするが、ユーザーがオートモードではなくマニュアルモードに戻したいときは、いつでも切替ができる。
【ここからご相談です】
上記のような仕様を作るには、どのような方法が考えられますでしょうか?
■(以下自分が思いつくアイディア)
・chat gptに聞いてしまったのですが、切替用バッチファイル (ModeSwitch.bat)を作るのが有効でしょうか?
@echo off
set /p mode=<mode.txt
if "%mode%"=="Manual" (
echo Auto > mode.txt
echo モードがオートモードに変更されました。
) else (
echo Manual > mode.txt
echo モードがマニュアルモードに変更されました。
)
ちょっとまだこの方法が使えそうが調査中です。
・(やり方はわからないが)現在オートモードかマニュアルモードどちらなのかをどこかに常時表示したいかも。
・一番簡単なのは、タスクスケジューラーに、Manual.batと、Auto.batを作動するスケジューラをそれぞれ作り、ユーザーが好きな時に、一方を停止、一方をRUNにすることだが、通常仕様としてユーザーがタスクスケジューラーを触るというのは、なるべく避けたいし、(そういうことをさせる場合もあるのですかね?なんとなく抵抗あり。) 2つのタスクスケジューラがRUNしっぱなしになるなど、具体的にリスクも考えられる。
【補足】
・私のスキルとしては、バッチコマンド少々、Powershell少々、VBAマクロ少々・・・程度です。現場のネットワークが限られた環境なのでPythonなどは少し難しそうです。
・本当は3つのPCにあるプログラムを連携するなどもう少し複雑ですが、フォルダ共有などで連携して作るので、一つのPC内で作るようなアイディアをもらえたら応用できると考えています。
・・・以上、何か方法が思いつく方がいらっしゃいましたら、是非ご教示お願い致します。