毎朝、メールより先にチェックするための注意喚起を自動化する仕組み(記事)を構築した筆者であったが、現在のところ非常にうまく稼働している。
まとめると、以下のようなタスク処理を定時に自動で行ってくれる。
1.朝一にメールより前に確認しておくべきことをデスクトップに表示
2.SaaS利用を目的に設定したURLへブラウザで自動移動
3.その日の作業フォルダを西暦日付名で自動作成
こうしてみると、ひとつの改善点は1.の表示部分だ。なぜなら、朝一にメールより前に確認すべきことは、随時変わってくる。どうすれば手軽に編集できうだろうか?CGIで掲示板を作ったことのある人なら、ここはテキスト読み込みだとすぐに思うだろう。筆者も学生時代に大量の掲示板を設置するサイトを作成・運営していた経験があるので、直ぐに閃いた。
○テキストを読み込ませる仕様に変える
現状の「朝一起動のPowerShellスクリプト」は以下のようなものだ。
Add-Type -AssemblyName System.Windows.Forms
$msg = @"
9時です。メールを開く前にやること
・その日の提出物確認
・スマホやモバイル端末の充電状況確認
・無駄なメールは後回し
※メールを先に開くと負けです
"@
$result = [System.Windows.Forms.MessageBox]::Show(
$msg,
"朝通知",
[System.Windows.Forms.MessageBoxButtons]::OKCancel,
[System.Windows.Forms.MessageBoxIcon]::Warning
)
if ($result -eq "OK") {
Start-Process "https://news.mynavi.jp"
}
$msg に入れているヒアドキュメント @"~"@の部分をまるまるテキストから読み込ませるには、ファイル読み込みのGet-Content(Microsoft公式API)を用いる。
$msg = Get-Content "C:\Users\●●●\Documents\morning.txt" -Raw
とテキストファイルを指定する。 -Rawは改行もそのままメッセージとして保持するためのオプションで今回は必須だ。Get-Contentでテキストで保存したファイルから読み込むtestMorning.ps1は以下のようになる。
Add-Type -AssemblyName System.Windows.Forms
$msg = Get-Content "C:\Users\●●●\Documents\morning.txt" -Raw
$result = [System.Windows.Forms.MessageBox]::Show(
$msg,
"朝通知",
[System.Windows.Forms.MessageBoxButtons]::OKCancel,
[System.Windows.Forms.MessageBoxIcon]::Warning
)
if ($result -eq "OK") {
Start-Process "https://news.mynavi.jp"
mkdir "$env:USERPROFILE\Desktop\$(Get-Date -Format 'yyyyMMdd')"
}
Read-Host "Press Enter to close"
これを実行すると
ドキッとするが、見慣れた文字化けなので安心である。テキストをutf-8保存して再度実行すると
無事にテキストファイルを読み込んで表示される。
.











![[USBで録画や再生可能]Tinguポータブルテレビ テレビ小型 14.1インチ 高齢者向け 病院使用可能 大画面 大音量 簡単操作 車中泊 車載用バッグ付き 良い画質 HDMI端子搭載 録画機能 YouTube視聴可能 モバイルバッテリーに対応 AC電源・車載電源に対応 スタンド/吊り下げ/車載の3種類設置 リモコン付き 遠距離操作可能 タイムシフト機能付き 底部ボタン 軽量 (14.1インチ)](https://m.media-amazon.com/images/I/51-Yonm5vZL._SL500_.jpg)