3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

中小底辺事務員が自動化を頑張る(出勤日だけPCを起動しておく)

Posted at

いきさつ

パソコンを立ち上げてデスクトップが表示されていても、ソフトの起動やデータの読み込みがすぐには終わっておらず、デスクトップが表示された直後はパソコンの動作が非常に重くストレス溜まります、落ち着くまで待っておけば良いのですが。
出社して席に着いた時には、起動後しばらくした落ち着いた状態でいてほしいです。

やりたいこと

営業日だけパソコンをあらかじめ起動しておきたい。

BIOSの自動起動の機能を利用する

起動スケジュールは曜日と時間の指定だけなので、営業日だけは無理ですね。
ただし、これを利用すれば。

BIOSで毎日起動しておいてから、休日だったらシャットダウンする

WindowsのタスクスケジューラでOS起動後に今日が休日か判別して、休日ならシャットダウンする。という方法くらいしかないじゃないでしょうか。
OS上からBIOSの設定が書き換えれるなら、実現できそうですけど。

実際には卑怯な手段で実現

「営業日だけ起動する」事が無理なのはわかったのですが諦めきれず。

社内で自分が触る事ができるサーバーがあったので、そこから営業日の朝にWoLを使ってマジックパケットを送り起動する事にしました。マジックパケットを送る方法はMagicSendというソフトを使いました。

以下のバッチをパソコンを起動したい時間に、タスクスケジューラに登録します。

wol_on_businessday.bat
@echo off

SET DATA=""
SET /P DATA=<dayoff.txt

IF %DATA%==%DATE% (
  FOR /F "skip=1 tokens=* usebackq" %%i IN ("dayoff.txt") DO @echo %%i>>dayoff.txt.tmp
  DEL dayoff.txt
  REN dayoff.txt.tmp dayoff.txt
) else (
  magicsend AA-BB-CC-DD-EE-FF
)
dayoff.txt(休日=PCを起動しない日を記述)
2019/01/01
2019/01/02
2019/01/03
.
.
.
2019/12/29
2019/12/30
2019/12/31

txtにある1行目と今日が一致(=今日が休み)したらなにもせず1行目を削除、今日が一致しなかったら(=今日が営業日)マジックパケットを送って対象のPCを起動します。

おわりに

txtの1行目としか比較しないので、なにか問題があってずれてしまったらずっとうまく動作しないという問題があること。そもそも1行目を消さなくてもtxtと全文と今日の文字列の比較だけすれば問題も起こりにくいし、単純な事にあとで気付きました。

でも、バッチ処理でテキストファイルの1行目を削除するのってどうするんだろう?と頭を悩ませた経緯があったので、あえてこの方法を公開してみました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?