mIRC Drive Statistics

This script will post the usage and capacity of each drive.

type /hddstats

Output

[Drive: C:  (||------------------) 25.29GB/237.98GB]
[Drive: D:  (||||||||||||||------) 2637.38GB/3725.9GB]
[Drive: E:  (|||||||||||||||||||-) 3516.02GB/3725.9GB]
[Drive: F:  (|||||||||||||||||||-) 3491.33GB/3725.9GB]
[Drive: G:  (||||||||||||||||||||) 3656.3GB/3725.9GB]
[Drive: H:  (|||||||||||||||-----) 1355.26GB/1862.89GB]
[Total: 14681.58GB/17004.46GB]
alias hddstats {
  if ($0 == 0) {
    var %drives cdefghijklmnopqrstuvwxyz

    var %i 1
    while (%i <= $len(%drives)) {
      set %drive $mid(%drives,%i,1) 
      if ($disk(%drive) == $true) {
        if ($disk(%drive).type == fixed) {
          showdrivestats %drive $+ :
          say $result
        }
      }
      inc %i
    }
    unset %drive

    showdrivestats
    say $result
  }
  else {
    showdrivestats $1
    say $result
  }
}

alias showdrivestats {
  if ($0 == 0) { 
    ;hddbar
    ;var %hddbar $result

    hddsize $1
    var %hddsize $result

    return   $+ $chr(91) $+   $+ Total %hddsize $+  ]
  }
  else {
    if ($disk($1) == $false) { return }

    hddbar $1
    var %hddbar $result

    hddsize $1
    var %hddsize $result

    return   $+ $chr(91) $+   $+ Drive $1 %hddbar %hddsize $+  ] 
  }
}

alias hddbar {
  var %bar_size 20
  if (%bar_size == 0) { return }
  if ($0 == 0) { return }

  if ($disk($1) == $false) { return }

  var %bar_unused $round($calc(($disk($1).free / $disk($1).size) * %bar_size),0)
  var %bar_used $round($calc(%bar_size - %bar_unused),0)

  return  ( $+ $str(|,%bar_used) $+ $str(-,%bar_unused) $+ )

}

alias hddsize {
  if ($0 == 0) { 
    var %drives cdefghijklmnopqrstuvwxyz

    var %totalfree 0
    var %totalsize 0

    var %i 1
    while (%i <= $len(%drives)) {
      set %drive $mid(%drives,%i,1) 
      if ($disk(%drive) == $true) {
        if ($disk(%drive).type == fixed) {
          inc %totalfree $disk(%drive).free
          inc %totalsize $disk(%drive).size
        }
      }
      inc %i
    }
    unset %drive



    var %divisor 1024/1024/1024
    var %size GB

    var %hdd_bfree $round($calc(%totalfree / %divisor),2)
    var %hdd_btotal $round($calc(%totalsize / %divisor),2)
    var %hdd_bused $calc(%hdd_btotal - %hdd_bfree)

    return %hdd_bused $+ %size $+ / $+ %hdd_btotal $+ %size
  }
  else {
    if ($disk($1) == $false) { return }

    var %divisor 1024/1024/1024
    var %size GB

    var %hdd_bfree $round($calc($disk($1).free / %divisor),2)
    var %hdd_btotal $round($calc($disk($1).size / %divisor),2)
    var %hdd_bused $calc(%hdd_btotal - %hdd_bfree)

    return %hdd_bused $+ %size $+ / $+ %hdd_btotal $+ %size
  }
}