という時は、ぶっちゃけ「GET-DRIVE」だけなのですが、それをベースに色々なPowerShellの書き方を盛り込んでみたいと思います。
- 処理は関数化
- バイト数をGBに変換する関数を作成
- 残量18GB切ったら警告表示
プロファイルがあれば「II (SPLIT-PATH $PROFILE)」コマンドで場所が開きます。
#Byte=>GB変換(小数点以下3桁まで)
function global:ConvertGB([double]$value) {
$compute = [Math]::Round($value/[Math]::Pow(1024,3),3);
return $compute;
}
#ストレージ状況
function global:STORAGE() {
$LINE="-" * 80;
$STORAGE_SOURCES = GET-PSDRIVE | ?{$_.Provider -match "FileSystem"}
WRITE-HOST "---ストレージ使用状況---"
WRITE-HOST $LINE;
foreach($STORAGE_SOURCE in $STORAGE_SOURCES) {
$MES = (
$STORAGE_SOURCE.Name + "ドライブ"+
" ☆空き(GB)=" +(ConvertGB ($STORAGE_SOURCE.Free)).ToString(".000")+
" 使用中(GB)=" +(ConvertGB ($STORAGE_SOURCE.Used)).ToString(".000")+
" 全容量(GB)=" +(ConvertGB ($STORAGE_SOURCE.Used + $STORAGE_SOURCE.Free)).ToString(".000")
);
WRITE-HOST $MES;
if((ConvertGB $STORAGE_SOURCE.Free) -lt 18.0) {
WRITE-HOST ((" "*10)+"【容量注意】");
}
WRITE-HOST $LINE;
}
}
最初はオブジェクトを繰り返し処理する%{}で書いてみましたが、かなり横長なので、foreach()によるコード記述にしました。
18.0GBを切ると警告メッセージ。
愛用のASUS E203MAは、eMMC-64GBなので残量にはナーバスです。
大型のWindows Updateさえ来なければなぁと思うのですが、しゃあない。
画面にテキストを表示する時には、WRITE-HOST使っていますが、PowerShellで文字列を連続で表示したい時は"文字列"*回数と書くだけで手軽にできるので凄い。
C:\>STORAGE
---ストレージ使用状況---
--------------------------------------------------------------------------------
Cドライブ ☆空き(GB)=17.499 使用中(GB)=39.691 全容量(GB)=57.189
【容量注意】
--------------------------------------------------------------------------------
Dドライブ ☆空き(GB)=30.517 使用中(GB)=28.497 全容量(GB)=59.015
--------------------------------------------------------------------------------
あらららいきなり容量注意だーー。
↑というわけで、仮想メモリ見たら3GBほど膨らんでいたため、クリーンアップして再起動。
ギリギリでストレージの空きが20GB台を回復しました。
ASUS E203MAを本気でガンガン使うと、どうしてもExcel 2019、VS Code、SQL-Server、OneNote、ブラウザあたりは同時に起動しておくため、メインRAM 4GBだと仮想メモリが膨張してしまいますね。
eMMC-64GBだと、本当に1GBの価値が高いというか重たいので、将来的にSSD-256GBなどという驚異の超贅沢はぶっこかないので、eMMC-128GBのASUS E203シリーズ出て欲しい!!