日次バッチで曜日指定
2023年09月28日
今回ほバッチファイルの処理で、今日の曜日を見て指定と一致すれば実行するバッチファイルの曜日分岐について。
前に投稿したDirコマンドでBAS内のファイルを全検索するコマンドについて、定期的に手動で取得するのは面倒なため、タスクスケジューラにバッチファイルを登録して運用している。
解析対象の更新を忘れないように、バッチファイルの最後にテキストエディタでバッチファイルを開くようにしている。
ただ、解析対象指定の更新が面倒なため、特定の曜日にだけ実行するようバッチに曜日判定機能を入れてみた。
VBScriptで取得する方法もネットで紹介されてたけど、バッチ側から実行ファイルのパスを指定する必要があるのでやめ。そんなメンテナンスやってらんない。
バッチでできないことは、Power Shell でできることが多い。曜日指定もその一つ。ネットからソースを拝借して完成。
https://maku.blog/p/372dx46/
ネットのソースを使うにあたってコマンドプロンプトで試してみたらうまく行かず。。。
バッチとコマンドプロンプトで作法の違いがあること知らなかった。。。知ってたけど忘れてた?
注意されたし。
バッチでfor文を使うのがなかなか理解できない。バッチのソースは人間が読むもんじゃねぇ。
可読性悪いし、作法にうるさい。エラー吐かずに終了したり。自分なりに頑張ろうとせずにネットから動くものを集めてカスタマイズの方が効率的だよなぁ。
てなわけで、以下、バッチファイル内のソース。
set ps_command=`powershell "(Get-Date).DayOfWeek.value__"`
FOR /F "usebackq delims=" %%A IN (%ps_command%) DO set result=%%A
if {%result%}=={1} (
::月曜日
Dir /S /A-D "対象フォルダ" “フルファイル名.txt"
)
if {%result%}=={2} (
::火曜日
)
if {%result%}=={3} (
::水曜日
)
if {%result%}=={4} (
::木曜日
)
if {%result%}=={5} (
::金曜日
)
PR
Comment