はじめまして!大阪支店のabCdeです。
皆さんはPowerShellってご存じですか?
僕は最近知りました。
まず、PowerShellとは何でしょうか?
PowerShell は、.NET 上に構築されたタスクベースのコマンド ライン シェルおよびスクリプト言語です。 PowerShell は、システム管理者およびパワー ユーザーが、オペレーティング システム (Linux、macOS、および Windows) とプロセスを管理するタスクを迅速に自動化するのに役立ちます。
PowerShell スクリプト | Microsoft Docs より引用
なんだか覚えておくと便利そうなので、勉強してみようと思います。
開発にはWindows10ならデフォルトで入っているWindows PowerShell ISEを使います。
まずは、新しい言語の通過儀礼から。
function hi {
echo "Hello World"
}
hi
無事に Hello World が出力されました。
続いて変数を使ってみます。
function varhi {
#コメントは先頭に#を付けます。
#変数は$を付けます
$var = "Hello World"
echo $var
}
varhi
こちらも無事に Hello World が出力されました。
せっかくですので、次はコマンドラインではなく通知に何かを出力してみましょう。
Windowsの通知はXMLで内容を作ることが出来るようです。
早速PowerShellで使ってみます。
function teast {
#トースト通知のXMLとして扱える文字列を作成
$toast = @"
<toast>
<visual>
</visual>
<actions hint-systemCommands="SnoozeAndDismiss" />
</toast>
"@
#変数の型を設定し、XMLとして扱えるように
$outputxml = New-Object Windows.Data.Xml.Dom.XmlDocument
#文字列をXMLとして読み込み
$outputxml.LoadXml($toast)
#Windowsの通知機能を使用する為のおまじない
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe").show($outputxml)
}
teast
通知が出てくるようになりました。
今度は通知の中身をいじってみます。
function ramen {
#変数の型を設定
$outputxml = New-Object Windows.Data.Xml.Dom.XmlDocument
#文字列をXML文章として読み込み
$outputxml.LoadXml($toast)
#通知機能を使用し、設定したXMLを表示
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe").show($outputxml)
#3分待機
Start-Sleep 180
#文字列をXML文章として読み込み
$outputxml.LoadXml($eat)
#通知機能を使用し、設定したXMLを表示
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe").show($outputxml)
}
#Toast通知のXMLを作成
$toast = @"
<toast>
<visual>
<binding template="ToastGeneric">
<text>お湯入れた?</text>
</binding>
</visual>
</toast>
"@
#Toast通知のXMLを作成
$eat = @"
<toast>
<visual>
<binding template="ToastGeneric">
<text>出来上がり</text>
</binding>
</visual>
</toast>
"@
ramen
ついでに3分待つようにして、別の通知も入れました。
これで、お湯を入れて実行すれば、3分後に完成の通知が出てきます。
では、いただきます。