Arrays @使用_FileListToArray的错误值

Arrays @使用_FileListToArray的错误值,arrays,autoit,Arrays,Autoit,我正在编写一个脚本来解析机器上的所有用户配置文件,并检查目录的内容。根据目录的内容,某些文件夹可能会被删除。 对于每个用户,我使用\u FileListToArray读取 C:\Users\<Username>\AppData\Roaming\schlumberger\Petrel. 如果您需要任何澄清,请告诉我。没有理由@error会不断返回0,因此稍微重写一下应该可以解决此问题。我用了一种稍微不同的方法,我会检查@error是否为0(我们的文件夹存在),并检查确保$petre

我正在编写一个脚本来解析机器上的所有用户配置文件,并检查目录的内容。根据目录的内容,某些文件夹可能会被删除。 对于每个用户,我使用
\u FileListToArray
读取

C:\Users\<Username>\AppData\Roaming\schlumberger\Petrel. 

如果您需要任何澄清,请告诉我。

没有理由
@error
会不断返回0,因此稍微重写一下应该可以解决此问题。我用了一种稍微不同的方法,我会检查
@error
是否为
0
(我们的文件夹存在),并检查确保
$petrelFolders
的第一个元素大于0(第一个元素包含找到的目录数,因此如果为0,我们不想循环)-这给了我们:

Func DeleteDirectories($userList)

If $debug = True Then ConsoleWrite(@CR & 'Function: DeleteDirectories')

;_ArrayDisplay($userList)
For $userElement in $userList
    ; debug ------------------------------------------------------------------------------
    ConsoleWrite(@CR & 'Number of user profiles found = ' & $userList[0])
    ConsoleWrite(@CR & '$userElement = ' & $userElement)
    ConsoleWrite(@CR & 'Debug: C:\Users\' & $userElement & '\AppData\Roaming\schlumberger\Petrel')
    ; debug ------------------------------------------------------------------------------

    Local $petrelFolders = _FileListToArray("C:\Users\" & $userElement & "\AppData\Roaming\schlumberger\Petrel", "*", 2)
    ;ConsoleWrite(@CR & '@error = ' & @error)
    ;ConsoleWrite(@CR & '$petrelFolders = ' & $petrelFolders)
    If @error = 0 And $petrelFolders[0] > 0 Then
        For $i = 0 To Ubound($petrelFolders) - 1 Step 1
            If $i <> 0 And $petrelFolders[$i] >= Int("2013") Then
                ConsoleWrite(@CR & "C:\Users\" & $userElement & "\AppData\Roaming\schlumberger\Petrel\" & $petrelFolders[$i] & " will be deleted")
            EndIf
        Next
    EndIf
Next

CreateDirectories($userList)

EndFunc
Func删除目录($userList)
如果$debug=True,则ConsoleWrite(@CR&'Function:deleteDirectory')
;_ArrayDisplay($userList)
对于$userList中的$userElement
; 调试------------------------------------------------------------------------------
ConsoleWrite(@CR&'找到的用户配置文件数='&$userList[0])
控制台写入(@CR&'$userElement='&$userElement)
控制台写入(@CR&'Debug:C:\Users\'和$userElement&'\AppData\Roaming\schlumberger\Petrel'))
; 调试------------------------------------------------------------------------------
本地$petrelFolders=\u文件列表到阵列(“C:\Users\”和$userElement&“\AppData\Roaming\schlumberger\Petrel”,“*”,2)
;控制台写入(@CR&'@error='&@error)
;控制台写入(@CR&'$petrelFolders='&$petrelFolders)
如果@error=0且$petrelFolders[0]>0,则
对于$i=0到Ubound($petrelFolders)-1步骤1
如果$i 0和$petrelFolders[$i]>=Int(“2013”),则
ConsoleWrite(@CR&“C:\Users\”和$userElement&“\AppData\Roaming\schlumberger\Petrel\”和$petrelFolders[$i]&”将被删除)
恩迪夫
下一个
恩迪夫
下一个
CreateDirectory($userList)
EndFunc
Func DeleteDirectories($userList)

If $debug = True Then ConsoleWrite(@CR & 'Function: DeleteDirectories')

;_ArrayDisplay($userList)
For $userElement in $userList
    ; debug ------------------------------------------------------------------------------
    ConsoleWrite(@CR & 'Number of user profiles found = ' & $userList[0])
    ConsoleWrite(@CR & '$userElement = ' & $userElement)
    ConsoleWrite(@CR & 'Debug: C:\Users\' & $userElement & '\AppData\Roaming\schlumberger\Petrel')
    ; debug ------------------------------------------------------------------------------

    Local $petrelFolders = _FileListToArray("C:\Users\" & $userElement & "\AppData\Roaming\schlumberger\Petrel", "*", 2)
    ;ConsoleWrite(@CR & '@error = ' & @error)
    ;ConsoleWrite(@CR & '$petrelFolders = ' & $petrelFolders)
    If @error = 4 Then
        ConsoleWrite(@CR & 'No folders have been found.')
        ConsoleWrite(@CR & '@error = ' & @error)
    Else
        For $petrelElement in $petrelFolders
            ConsoleWrite(@CR & '@error = ' & @error)
            ConsoleWrite(@CR & '$petrelElement = ' & $petrelElement)
            If $petrelElement >= "2013" Then
                ConsoleWrite(@CR & "C:\Users\" & $userElement & "\AppData\Roaming\schlumberger\Petrel\" & $petrelElement & " will be deleted")
                Local $fileDeleteCheck = DirRemove("C:\Users\" & $userElement & "\AppData\Roaming\schlumberger\Petrel\" & $petrelElement)
                ConsoleWrite(@CR & '$fileDeleteCheck = ' & $fileDeleteCheck)
            EndIf
        Next
    EndIf
Next

CreateDirectories($userList)

EndFunc
Func DeleteDirectories($userList)

If $debug = True Then ConsoleWrite(@CR & 'Function: DeleteDirectories')

;_ArrayDisplay($userList)
For $userElement in $userList
    ; debug ------------------------------------------------------------------------------
    ConsoleWrite(@CR & 'Number of user profiles found = ' & $userList[0])
    ConsoleWrite(@CR & '$userElement = ' & $userElement)
    ConsoleWrite(@CR & 'Debug: C:\Users\' & $userElement & '\AppData\Roaming\schlumberger\Petrel')
    ; debug ------------------------------------------------------------------------------

    Local $petrelFolders = _FileListToArray("C:\Users\" & $userElement & "\AppData\Roaming\schlumberger\Petrel", "*", 2)
    ;ConsoleWrite(@CR & '@error = ' & @error)
    ;ConsoleWrite(@CR & '$petrelFolders = ' & $petrelFolders)
    If @error = 0 And $petrelFolders[0] > 0 Then
        For $i = 0 To Ubound($petrelFolders) - 1 Step 1
            If $i <> 0 And $petrelFolders[$i] >= Int("2013") Then
                ConsoleWrite(@CR & "C:\Users\" & $userElement & "\AppData\Roaming\schlumberger\Petrel\" & $petrelFolders[$i] & " will be deleted")
            EndIf
        Next
    EndIf
Next

CreateDirectories($userList)

EndFunc