Здравствуйте.
Ситуация следующая.
есть дерево папок которое постоянно изменяется. Мне необходимо выполнять определенную команду ко всем файлам и папкам и писать это в лог.
Не могу понять как заставить его заглядывать во все папки. пока получается что он смотрит есть папка и удаляет ее нафиг. в общем так будет проще.
а надо что бы он смотрел в папку если есть файлы затирал, а если нету то шел дальше. а если там есть папка то смотрел что в ней. если в ней есть файлы то тер их. если есть папка то залазил и смотрел что в ней. и так до бесконечности. И все это писал в лог.
Ситуация следующая.
есть дерево папок которое постоянно изменяется. Мне необходимо выполнять определенную команду ко всем файлам и папкам и писать это в лог.
Не могу понять как заставить его заглядывать во все папки. пока получается что он смотрит есть папка и удаляет ее нафиг. в общем так будет проще.
Код:
#include <file.au3>
#include <Array.au3>
$conf = (@ScriptDir & "\conf.ini")
$hSearch = FileFindFirstFile("conf.ini")
If $hSearch = -1 Then
FileWrite($conf, "\\name-pc\123\111\" & @CRLF & "путь к логу\log.txt" & @CRLF & "первая строка - путь к директории в которой будет производиться чистка" & @CRLF & "вторая строка - путь к файлу с логом и его название" & @CRLF)
Exit
EndIf
$sDatePC = StringFormat('%.02d.%.02d.%.04d', @MDAY, @MON, @YEAR) ; задаем дату
$sTimePC = StringFormat('%.02d.%.02d', @HOUR, @MIN) ; задаем время
$dir = FileReadLine (@ScriptDir & "\conf.ini", 1)
;FileWrite(@ScriptDir & "\olololo.ini",$dir & @CRLF)
if @error = 1 Then
FileWrite (@ScriptDir & "\error.txt", "Ошибка чтения conf.ini. Неполучается считать первую строку" & @CRLF)
Exit
EndIf
$logfile = FileReadLine (@ScriptDir & "\conf.ini", 2)
;FileWrite(@ScriptDir & "\olololo.ini",$logfile & @CRLF)
if @error = 1 Then
FileWrite (@ScriptDir & "\error.txt", "Ошибка чтения conf.ini. Неполучается считать вторую строку" & @CRLF)
Exit
EndIf
;$Fileiskl = FileReadLine (@ScriptDir & "\conf.ini", 3)
;FileWrite(@ScriptDir & "\olololo.ini",$Fileiskl & @CRLF)
; if @error = 1 Then
; FileWrite (@ScriptDir & "\error.txt", "Ошибка чтения conf.ini. Неполучается считать третью строку" & @CRLF)
; Exit
; EndIf
FileWrite($logfile, "Начало очистки " & $sTimePC & " " & $sDatePC & @CRLF)
Global $folderarray=_FileListToArray($dir, "*", 2)
$hSearch = FileFindFirstFile("iskl.ini")
If $hSearch = -1 Then
FileWrite($logfile, "Ненайден файл исключений. Создние файла исключений с полным списком папок корневой директории (" & $dir & ")" & @CRLF)
_FileWriteFromArray (@ScriptDir & "\iskl.ini", $folderarray)
EndIf
$Fileiskl =(@ScriptDir & "\iskl.ini")
Global $aText = FileReadToArray($Fileiskl)
For $i = 0 To UBound($folderarray) - 1
For $j = 0 To UBound($aText) - 1
If $folderarray[$i] = $aText[$j] Then
FileWrite($logfile, "Найдена исключаемая папка: " & $folderarray[$i] & @CRLF)
ExitLoop
EndIf
Next
$dirremarray = _FileListToArray($dir & $folderarray[$i] & "\", "*", 2)
$fileremarray = _FileListToArray($dir & $folderarray[$i] & "\", "*", 1)
If $j = UBound($aText) Then
For $k = 1 To UBound($dirremarray) - 1
DirRemove($dir & $folderarray[$i] & "\" & $dirremarray[$k], 1)
FileWrite($logfile, "Очистка папки: " & $folderarray[$i] & @CRLF)
FileWrite($logfile, "-удаление папки: " & $dirremarray[$k] & @CRLF)
Next
For $q = 1 To UBound($fileremarray) - 1
FileDelete($dir & $folderarray[$i] & "\" & $fileremarray[$q])
FileWrite($logfile, "-удаление файла: " & $fileremarray[$q] & @CRLF)
Next
EndIf
Next
FileWrite($logfile, "#########################################################################################################" & @CRLF)