컴퓨터의 모든 사용자 프로필을 구문 분석하고 디렉토리의 내용을 검사하는 스크립트를 작성하고 있습니다. 디렉토리 내용에 따라 특정 폴더가 삭제 될 수 있습니다. 나는_FileListToArray를 사용하는 @error 값
C:\Users\<Username>\AppData\Roaming\schlumberger\Petrel.
@error의 값을 확인하는 IF 문 내의 모든 폴더에 읽기 _FileListToArray
를 사용하고 각 사용자에 대해 는 빈 배열을 잡기 위해 사용되는 (아무 폴더
C:\Users\<UserName>\AppData\Roaming\schlumberger\Petrel
에 포함되지
또는 디렉토리가 존재하지 않습니다. 아래 함수를 실행하면 @error 값이 0이지만 IF 조건이 true로 평가되므로 루프가 종료됩니다. 예를 들어 IF 조건을 @error = 4
이 아닌 4 또는 1로 변경하면 사용자 프로필 중 하나가 schlumberger 디렉터리가없는 구문 분석 될 때까지 모든 것이 의도 한대로 작동합니다. 이 콘솔에서 다음과 같은 출력 제공 : 의도 한대로 나는 그 특정 사용자에 대한 디렉토리를 작성하는 경우
Variable must be of type "Object".
를, 모든 작동합니다.
궁극적으로 내 문제는 @error
이 0 만 반환한다는 것입니다. 그러나 1 & 4를 찾고있는 IF
문에서 @error
의 값을 평가하면 진술이 사실 일 때가 있습니까?
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
명확한 내용이 필요하면 알려주십시오.