PowerShellでドライブの空き容量の一覧を取得する。

powershell コンピュータ
powershell

空き容量を所得するコマンドは次の通りになります。

Get-PSDrive | ? { $_.Free -ge 0 }

結果

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
C                 129.94       1777.02 FileSystem    C:\                                                    Users\karet
D                 823.81        130.06 FileSystem    D:\
E                 771.27        160.22 FileSystem    E:\
G                5448.93       2003.09 FileSystem    G:\
Temp              129.94       1777.02 FileSystem    C:\Users\karet\AppData\Local\Temp\
Z                  46.36         59.79 FileSystem    \\celeron-n4000\share

Get-PSDriveのみを実行するとレジストリなどもドライブとして表示されますので、Free(空き容量)プロパティが0以上で絞り込みを行っています。

コマンドが覚えられないので短い好みの名前で実行できるようにしたい。
メモリの空き容量を確認するスクリプトでは、.ps1ファイルを作成しAliasで短縮形で呼び出しました。
PowerShellでメインメモリーの状況を確認する。
PowerShellからmemコマンドでメモリの容量を表示させたい。 Get-WmiObject Win32_OperatingSystemで取得できるオブジェクトのTotalVisibleMemorySizeでトータルのメモリ容量、Fre...

今回はスクリプトモジュールにしてみたいと思います。

PowerShell7で実行

# Modulesフォルダの作成(無い場合)
mkdir (Join-Path (split-path $profile -parent) "Modules")
# モジュールフォルダDFの作成
mkdir (Join-Path (Join-Path (split-path $profile -parent) "Modules") DF)
# モジュールスクリプトの作成(VSCodeで作成)
code (Join-Path (Join-Path (Join-Path (split-path $profile -parent) "Modules") "DF") "DF.psm1")

DF.psm1の内容

<#
.SYNOPSIS
 ディスクの利用状況を表示

.DESCRIPTION
 Get-PSDrive

.PARAMETER 
 なし
    
#>
# 
function DF
{
    #param($file="")
    return Get-PSDrive | ? { $_.Free -ge 0 }
}
Export-ModuleMember -Function DF # モジュールを公開

モジュールを有効化するためPowerShellに再起動

スクリプトを実行

PS>df
Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
C                 129.98       1776.98 FileSystem    C:\                                                    Users\karet
D                 823.81        130.06 FileSystem    D:\
E                 771.27        160.22 FileSystem    E:\
G                5448.93       2003.09 FileSystem    G:\
Temp              129.98       1776.98 FileSystem    C:\Users\karet\AppData\Local\Temp\
Z                  46.36         59.79 FileSystem    \\celeron-n4000\share

PowerShell7でModulesフォルダをどこに作ればよいのか知らないので、とりあえず$profileが保存されたフォルダの下に作成mkdir (Join-Path (split-path $profile -parent) "Modules")しています。
以上

コメント