執筆者: あんどう
最終更新: 2023/05/14
wsl --shutdown
をGUIで叩く。GUIの方がめんどいわという人はこの記事の対象ではない。
例えばDocker DesktopやIDEを終了しても、WSLがかなりメモリを食っていたとする。
ポチッとな!
パソコンルームでブラクラを作っていた頃を彷彿とさせるプロンプトが出る。
はいを押すと立ち上がってるディストロが全部落ちる。ついでにRAM使用率も表示する。数字丸めるの忘れた。
そもそも作業中はコマンドを普通に叩くだろうから、なにか作業中にポチッとなすることは想定していない。これからゲームする時とかに使え。
PowerShell拡張機能を入れる。
"terminal.integrated.env.windows": {
"PSExecutionPolicyPreference": "RemoteSigned"
}
settings.json
に上記を追記し、自作スクリプトを実行可能にする。
Add-Type -Assembly System.Windows.Forms
$result = [System.Windows.Forms.MessageBox]::Show("WSL全部終了する?","確認","YesNo","Question","Button2")
If($result -eq "Yes"){
wsl.exe --shutdown
# https://shellgeek.com/powershell-get-memory-usage/
$CompObject = Get-WmiObject -Class WIN32_OperatingSystem
$Memory = ((($CompObject.TotalVisibleMemorySize - $CompObject.FreePhysicalMemory)*100)/ $CompObject.TotalVisibleMemorySize)
[void][System.Windows.Forms.MessageBox]::Show("現在のRAM使用率: " + $Memory + "%", "WSLを終了しました")
}
exit 0
VSCodeで上記のスクリプトを書き、適当な場所に保存する。
ただ、MessageBoxはShift-JISしか日本語を受け付けないっぽいので、エンコードを変えて保存し直す必要があると思う。
UTF-8で保存して日本語を出せる方法を誰か教えてくれ~
ショートカットを作成。分かりやすい名前を付ける。
本当は上記ファイルをスタートメニューにぶちこみたいんだが、右クリックメニューにないしD&Dもできない。
仕方ないので %AppData%\Microsoft\Windows\Start Menu\Programs
にショートカットを放り込む。
放り込んだショートカットのプロパティを開く。
powershell -ExecutionPolicy RemoteSigned -File "ps1ファイルのパス"
ただ単にps1ファイルへのショートカットになっているので、先頭にpowershell
を追記し、あとポリシーを変える。
あとは検索すれば出てくるはずなので、スタートメニューにピン留めする。
https://shellgeek.com/powershell-get-memory-usage/
https://acoustic-groove2.hatenablog.com/entry/2018/01/29/233637
この人が書いた記事