Jump to content
Sign in to follow this  

Find subdirectories?

Recommended Posts


How can I find what sub-directories exist in a path?

I have a small backup script that works, but now I want it to only backup directories it hasnt found yet instead of all of em


Share this post

Link to post
Share on other sites

A quick look in the help file found this


yeah, I cant see how to make it return only directories

Share this post

Link to post
Share on other sites

This may help you.

#include <Array.au3>

;An array of sub-directories not to be backed up this time.
Local $aPrevBkUp[2] = ["C:\Program Files\AutoIt3\Examples\GUI", _
        "C:\Program Files\AutoIt3\Examples\GUI\Advanced"]

;List of all sub-directories
Local $sSortedDir = StringStripWS(_GetDOSOutput('dir "C:\Program Files\AutoIt3\" /A:-A /S /B /O:N'), 3)
;ConsoleWrite(_GetDOSOutput('dir /?') & @CRLF) ; Dir help
ConsoleWrite($sSortedDir & @CRLF)

;Remove sub-directories not requiring backup
For $i = 0 To UBound($aPrevBkUp) - 1
    If StringInStr($sSortedDir, $aPrevBkUp[$i]) <> 0 Then $sSortedDir = StringReplace($sSortedDir, $aPrevBkUp[$i] & @CRLF, "")

;Change string of sub-directories into an array of sub-directories.
Local $aNewBkUpDirs = StringSplit($sSortedDir, @CRLF, 3)


; http://www.autoitscript.com/forum/index.php?showtopic=108678&view=findpost&p=765520
; http://www.autoitscript.com/forum/index.php?showtopic=106254&view=findpost&p=750640
Func _GetDOSOutput($command)
    Local $text = '', $Pid = Run('"' & @ComSpec & '" /c ' & $command, '', @SW_HIDE, 2 + 4)
    While 1
        $text &= StdoutRead($Pid, False, False)
        If @error Then ExitLoop
    Return $text
EndFunc ;==>_GetDOSOutput

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