Jump to content
Valnurat

Will this run for ever

Recommended Posts

Valnurat

I'm trying to run through our users home directory for old backup folders that is not needed anymore. We have a backup solution that create a folder on users home directory. The name of the folder is the name of the computer. So when a users a getting a new computer the a new backup folder is created. And in time a lot of backup folders will be present if the user are not deleting them, but that is usually not the case. So we will go through all users home folder and delete what not needed anymore. To find out which computer that is active I use the AD attribute "managedby" on the computer object and I make an array of active computers for the user, so I don't delete wrong folders. But what I can't find out is if my 'DO ... UNTIL' runs for ever. I hope you guys can help me out here.

Func DelFolder()
  Local $aComputerOwner, $sFileDate, $hSearch, $sFileName = ""
  For $i = 0 To UBound($aUsersTarget) - 1
    $aComputerOwner = _AD_GetObjectsInOU("OU=computers," & $sSiteOU & ",OU=company,DC=AD,DC=company,DC=ORG","(&(objectclass=computer)(managedby=" & $aUsersTarget[$i][0] & "))",Default,"cn")
    if $aComputerOwner <> 0 Then
      $hSearch = FileFindFirstFile($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & "*.")
      if $hSearch <> -1 Then
        Do
          $sFileName = FileFindNextFile($hSearch)
          if UBound(_ArrayFindAll($aComputerOwner,$sFileName)) = 0 Then
            if StringInStr($sFileName,StringUpper(stringRight($sSiteOU,2) & StringMid($sSiteOU,StringInStr($sSiteOU,",")-2,2)&"LT")) <> 0 Or StringInStr($sFileName,StringUpper(stringRight($sSiteOU,2) & StringMid($sSiteOU,StringInStr($sSiteOU,",")-2,2)&"DT")) <> 0 Then
              $sFileDate = _ConvertTimeFormat(FileGetTime($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & $sFileName,0,1))
                If _DateDiff('M', $sFileDate, _NowCalc()) > $sIntVal Then
                  if $aUsersTarget[$i][4] = "" Then             ;   HomePath                        Username
                    _FileWriteLog($hFile, $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $sFileName&@CRLF)
                    if $bDebugMode Then
                      ConsoleWrite($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $sFileName& ' ' &_DateDiff('M', $sFileDate, _NowCalc())& ' ' &$sIntVal& ' ' & $aUsersTarget[$i][4] & @CRLF)
                    EndIf
                Else                    ;   HomePath                        Username                    BackupFolder
                    _FileWriteLog($hFile, $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & $sFileName&@CRLF)
                    if $bDebugMode Then
                      ConsoleWrite($aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $sFileName& ' ' &_DateDiff('M', $sFileDate, _NowCalc())& ' ' &$sIntVal& ' ' & $aUsersTarget[$i][4] & @CRLF)
                    EndIf
                EndIf
              EndIf
            EndIf
          EndIf
        Until FileFindNextFile($hSearch) = @error
      Else
        _FileWriteLog($hFile, "Error: No files/directories matched for " & $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & "*."&@CRLF)
        if $bDebugMode Then
          ConsoleWrite("Error: No files/directories matched for " & $aUsersTarget[$i][2] & "\" & $aUsersTarget[$i][3] & "\" & $aUsersTarget[$i][4] & "\" & "*."&@CRLF)
        EndIf
      EndIf
    ; Close the search handle.
      FileClose($hSearch)
    EndIf
  Next
EndFunc

 


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites
AutoBert

Put an expression that's never false:

Do
;...
Until True

A outer While...Wend in which the For...next is capsulated 

Edited by AutoBert

Share this post


Link to post
Share on other sites
Valnurat

Sorry I didn't understand that. :>


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites
AutoBert

Just insert While True before actualy line 2 (For $i ...) and Wend before EndFunc.

 

Sorry, Inserting code don't works for me since 2 hours, so file with changes attached.

delFolders.au3

Share this post


Link to post
Share on other sites
Valnurat

That didn't helped, but I rewrote it and now it is working.

used the _FileListToArray function.

 

:)


Yours sincerely

Kenneth.

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

  • Similar Content

    • Pagi
      By Pagi
       
      <a href="index.php=4143b27b41db0a40c499202865c3e24d" class="menuitem " target="\_self"> "Menu Item 1" </a>
      Can you tell me if it´s possible to click this menu button? If yes, how? Cause I have no idea, I think i should use _IETagNameGetCollection
    • mar3011
      By mar3011
      hello, I want to set in the inputbox field random key from the keyboard to which the function will be assigned, for example F4 function start notepad ALT + A function start notepad for one function. Thank you for any help.  
    • JuanFelipe
      By JuanFelipe
      Cambiar a español Hello friends, I need help with a problem I have, I want to know if there is any way to update a GUI already running, that is I have a GUI of a certain size and with a button I would like to enlarge it:
      example: $ form1 = GUICreate ("", 200,100,0,0)   When you press the button, the gui increases its size, and actuates the new size.
    • BogdanNicolescu
      By BogdanNicolescu
      While 1 / / / A whole bunch of codes found in help and here: https://www.autoitscript.com/autoit3/docs/ / / / WEnd OR:

       
      HotKeySet("{ESC}", "Terminate") While 1 MouseClick("Right",674,422) MouseClick("Left",673,447) Sleep(2000) / / / A whole bunch of codes found in help and here: https://www.autoitscript.com/autoit3/docs/ / / / MouseClick("Left",675,339) SLeep(3000) WEnd Func Terminate()     Exit 0 EndFunc  
      Sorry if i should't let this here to be found by newbies like me -.-'
    • santoshM
      By santoshM
      Dear friends i am facing a problem , i have created a window in autoit some time it is moving with the mouse curser even if iam not clicking the window 
×