WizardKit/.bin/Scripts/free_space.ps1
Alan Mason b180b42ec9 2016-10: Retroactive Updates
# Migration to Python started #
  * PoSH has an extreme slowdown for some systems while it runs an optimization
  ** pass for .NET on the first PoSH script execution.
  ** This is reason enough to move to an alternative.

* New additions:
  * User Data Transfer script
    * Will extract from a WIM or copy from a folder
    * Uses wimlib-imagex for images and FastCopy for folders
    * Removes undesired items after transfer/extraction
  * HWiNFO
  * Missing ODD repair registry patch
  * Q-Dir
  * SW Bundle install script

* ConEmu
  * Moving back to ConEmu for better performance.

* Copy-WizardKit
  * Now uses FastCopy

* functions.py
  * Ported init.ps1 to Python using functions.py (from WinPE) as a base

* Launch.cmd
  * Elevating programs/scripts now done using a temp VBScript file
  * Can run Python scripts (using either the 32 or 64 bit runtime)

* transferred_keys.cmd
  * Expanded searched paths

* Misc
  * Lots of variables and files renamed
  * Lots of hard-coded paths are now in variables
    * Should only be set in scripts in %bin%\Scripts
  * Moved a subset of the Diagnostics launchers to a new 'Extras' folder
    * The launchers moved are those that are less-often used
  * Refactored FindBin code to be more concise
  * Renamed "KitDir" "ClientDir" to indicate that it is on the client's system
  * Removed GeForce Experience launcher as it now requires an account
  * Added link to NVIDIA's driver webpage to download the correct driver
  * Removed AMD's Gaming Evolved launcher
    * This is usually bundled with the GPU driver anyway
  * Switched back to ConEmu
  * Variable and script names are now more descriptive
    * i.e. checklist -> final_checklist, and HH -> %kit_dir%
    * (not happy with %kit_dir%, will probably change again)
2017-11-17 00:53:08 -07:00

34 lines
1 KiB
PowerShell

# Wizard Kit: List free space for all drives
param([string]$log)
cd $(Split-Path $MyInvocation.MyCommand.Path)
. .\init.ps1
foreach ($d in [char]'C'..[char]'Z') {
$letter = "$([char]$d):"
if (-not $(test-path "$letter\")) {continue}
$drive = $(fsutil volume diskfree $letter) -replace '^.*: ',''
if ($lastexitcode -ne 0) {continue}
$percent = ($drive[2] / $drive[1]) * 100
foreach ($x in 0,1,2) {
$tmp = [int64]$drive[$x]
if ($tmp -ge 1tb) {
$tmp /= 1tb
$tmp = "{0:N2} Tb" -f $tmp
} elseif ($tmp -ge 1gb) {
$tmp /= 1gb
$tmp = "{0:N2} Gb" -f $tmp
} elseif ($tmp -ge 1mb) {
$tmp /= 1mb
$tmp = "{0:N2} Mb" -f $tmp
} elseif ($tmp -ge 1kb) {
$tmp /= 1kb
$tmp = "{0:N2} Kb" -f $tmp
} else {
$tmp = "$tmp bytes"
}
$drive[$x] = $tmp
}
WK-write $(" {0} {1:N0}% Free ({2} / {3})" -f $letter, $percent, $drive[2], $drive[1]) $log
}