見出し画像

【.batファイル】Twitter自動更新

今回は.batを利用したツイッターの自動更新をやってみた
ツイッター更新するためのアプリやwebブラウザ側の拡張機能はすでに存在するが、.batファイルの学習を兼ねて試してみる


コード概要と説明

@echo off
:loop
start msedge https://twitter.com/home
  echo loop
  TIME /t
  timeout /t 15 > nul
 taskkill /f /im msedge.exe
goto :loop

1行目 コマンド画面には出力結果だけを表示します
2行目 ここからループ開始します
3行目 msedge(Edge)を開きます。初期ページはツイッターのホームURL
4行目 loopしていることをコマンド画面に表示します
5行目 時間(HH:MM)をコマンド画面に表示します。
6行目 15秒待機します
7行目 msedge.exe(Edge)をタスクキル(強制終了)します
8行目 loop開始点(2行目)に戻ります

実現できたこと

  1. とりあえず更新はできた、、、

Edgeの画面を更新するコマンドを探していましたが良さそうなものは見つからずEdgeを閉じて開く対応になってしまったこと
windows.close()コマンドが使えないこと
上記からEdgeではなくchromeを使うか
.batではなくWindows PowerShellを使うか
JavaScriptを埋め込むか、、、など検討したがしっくりこなくて上記コードになってしまったこと
改善できるところはたくさんありそう、、、

今後の改善点

  1. Edgeが更新したいページのみで占有されてしまう

  2. Edgeが閉じたり開いたりするので正直目障り、、、

  3. Edgeを閉じる際、強制終了にしている

  4. 無限ループを使っているので無駄にCPUに負荷をかけてしまっているのでは

1と2に関してはEdgeをTwitter専用にするか、更新したいタブのみとじるか、1ページの更新のために占有してしまうのはやはりもったいない気はする、、、閉じる動作から更新に変更するのが一番良いのですが、、、

タブのみ閉じるのであればtasklistからpidを指定してtaskkill、、、できればよいが実現するにはページを開くタイミングでtasklistを書き出し→Twitterを開く→tasklistを別ファイルに書き出し→差分を抽出→差分のpidを指定してtaskkillになるのだろうか、、、?

3は強制終了の引数を渡さないと閉じれない場合があったため強制終了にしています

4は待機時間を15秒に設定しているのでそこまで負荷はかからないとは思いますが、、、CPUに余計な計算や負荷をかけていないか心配ではある。


余談ですが、
更新時間を短く変更するとDos攻撃になる可能性があるのとTwitterの画面表示がついてこないので10秒以上にするのが良さそう
コード4,5行目はTwitterの更新自体には何も影響はないので削除しても問題ないです
今回Twitterを対象にしましたが、URLを変えるだけでどのwebサイトでも利用できます

他にもこうすればいいよ等、
ご教示のほどよろしくお願いいたしますm(__)m


この記事が気に入ったらサポートをしてみませんか?