Valnurat Posted January 27, 2016 Posted January 27, 2016 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. expandcollapse popupFunc 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.
AutoBert Posted January 27, 2016 Posted January 27, 2016 (edited) Put an expression that's never false: Do ;... Until True A outer While...Wend in which the For...next is capsulated Edited January 27, 2016 by AutoBert
Valnurat Posted January 27, 2016 Author Posted January 27, 2016 Sorry I didn't understand that. Yours sincerely Kenneth.
AutoBert Posted January 27, 2016 Posted January 27, 2016 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
Valnurat Posted February 4, 2016 Author Posted February 4, 2016 That didn't helped, but I rewrote it and now it is working. used the _FileListToArray function. Yours sincerely Kenneth.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now