## The *check-drive-space.ps1* Script This PowerShell script checks a drive for free space left (20 GB by default). ## Parameters ```powershell /home/mf/Repos/PowerShell/Scripts/check-drive-space.ps1 [[-Drive] ] [[-MinLevel] ] [] -Drive Specifies the drive to check Required? false Position? 1 Default value Accept pipeline input? false Accept wildcard characters? false -MinLevel Specifies the minimum level in Gigabyte Required? false Position? 2 Default value 20 Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` ## Example ```powershell PS> ./check-drive-space C ✔️ 172 GB left on drive C (61 of 233 GB used) ``` ## Notes Author: Markus Fleschutz | License: CC0 ## Related Links https://github.com/fleschutz/PowerShell ## Source Code ```powershell <# .SYNOPSIS Checks a drive for free space left .DESCRIPTION This PowerShell script checks a drive for free space left (20 GB by default). .PARAMETER Drive Specifies the drive to check .PARAMETER MinLevel Specifies the minimum level in Gigabyte .EXAMPLE PS> ./check-drive-space C ✔️ 172 GB left on drive C (61 of 233 GB used) .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param([string]$Drive = "", [int]$MinLevel = 20) # minimum level in GB try { if ($Drive -eq "" ) { $Drive = read-host "Enter drive to check" } $DriveDetails = (get-psdrive $Drive) [int]$Free = (($DriveDetails.Free / 1024) / 1024) / 1024 [int]$Used = (($DriveDetails.Used / 1024) / 1024) / 1024 [int]$Total = ($Used + $Free) if ($Free -lt $MinLevel) { write-warning "Drive $Drive has only $Free GB left to use! ($Used of $Total GB used, minimum is $MinLevel GB)" exit 1 } & "$PSScriptRoot/speak-english.ps1" "Drive $Drive has $Free GB left ($Total GB total)" exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 } ``` *Generated by convert-ps2md.ps1 using the comment-based help of check-drive-space.ps1*