Jump to content
Sign in to follow this  
ptrex

DirUse - Directory Analysis Tool

Recommended Posts

ptrex

DirUse - Directory Analysis Tool

Basically there are many ways to do it differently.

But looking at the Parameters provided, there some interesting features like sending alerts.

DirUse is part of the Windows XP Service Pack 2 Support Tools at the MS download site.

#include <Constants.au3>

; DirUse uses the following syntax:
; diruse [/s|/v] [/m|/k|/b] [/c] [/,] [/q: Size] [/l] [/a] [/d] [/o] [/*] DirList [/? | /h | /help]

; Parameters
; /s Includes subdirectories of the specified directories in the output.
; /v Writes progress reports while scanning subdirectories. The /v parameter is ignored if /s is specified.
; /m Displays disk usage in megabytes.
; /k Displays disk usage in kilobytes.
; /b Displays disk usage in bytes (default).
; /c Uses compressed file size instead of apparent file size. See Diruse Examples.
; /, Displays the thousands separator (comma or period) in file sizes.
; /q: Size Marks, with an exclamation point (!), directories that exceed the specified size. 
;     If /m (megabytes) or /k (kilobytes) are not specified, the size is assumed to be in bytes. 
;     If /q is specified and any directory is found that exceeds the specified size, the return code is ONE. Otherwise the return code is ZERO.
; /l Writes overflows to the log file Diruse.log in the current directory.
; /a Specifies that an alert is generated if sizes specified by the /q: parameter are exceeded. 
;    The Alerter service must be running, and the alert appears only when you are using DirUse.
; /d Displays only directories that exceed specified sizes.
; /o Specifies that subdirectories are not checked to see if they exceed the specified size.
; /* Uses the top-level directories residing in the directories specified in DirList.

; DirList Specifies a list of directories to check. DirList is required if you are doing anything other than getting command-line usage. 
; Use semicolons, commas, or spaces to separate multiple directories. See Diruse Examples for examples where DirList is a folder on a network volume
; and where DirList contains a list of folders. 
; /?| /h| /help Displays command-line usage.

; Size > 50 mb
Local $foo = Run(@ComSpec & " /c diruse /* /m /q:50 /d C:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    ConsoleWrite($line & @CRLF)
Wend

While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
Wend

; Compressed Size
Local $foo = Run(@ComSpec & " /c diruse /c /* /m c:\Windows", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    ConsoleWrite($line & @CRLF)
Wend

While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
Wend

; Uncompressed Size
Local $foo = Run(@ComSpec & " /c diruse /* /m c:\Windows", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    ConsoleWrite($line & @CRLF)
Wend

While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
Wend

Enjoy !!

Regards

ptrex

Share this post


Link to post
Share on other sites
Skorn

you rock, ive been looking for this exact type of utility

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×