Что нового

Перестал работать скрипт

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Перестал работать скрипт.
Код:
#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 & '@ScriptDir & "\log.txt"' & @CRLF & '@ScriptDir & "\iskl.ini"' & @CRLF & 'первая строка - путь к директории в которой будет производиться чистка' & @CRLF & 'вторая строка - путь к файлу с логом и его название' & @CRLF & 'третья строка - путь к файлу исключений и его название' & @CRLF & '@ScriptDir директория в из которой запускается скрипт' & @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)
Global $aText = FileReadToArray($Fileiskl)
For $i = 0 To ($folderarray) - 1
  For $j = 0 To ($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)
		 Next
	  For $q = 1 To UBound($fileremarray) - 1
	  FileDelete($dir & $folderarray[$i] & "\" & $fileremarray[$q])
		 Next
	 FileWrite($logfile, "Очистка папки: " & $folderarray[$i] & @CRLF)
	 EndIf
  Next
  FileWrite($logfile, "#########################################################################################################" & @CRLF)
Утром работал. Вечером резко перестал записывать инфу в лог. И не обращает внимание на файл исключений. Если не изменяет память то ничего в нем не изменялось.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Думаете тут будет кто то из техподдержки? ;D

Вам бы автору скрипта написать о своей проблеме.
 
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Фишка в том что я его написал) и не могу понять почему оно не работает.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Вот поэтому не работает

Код:
$hSearch = FileFindFirstFile("conf.ini")
If $hSearch = -1 Then
    FileWrite($conf, '\\name-pc\123\111\' & @CRLF & '@ScriptDir & "\log.txt"' & @CRLF & '@ScriptDir & "\iskl.ini"' & @CRLF & 'первая строка - путь к директории в которой будет производиться чистка' & @CRLF & 'вторая строка - путь к файлу с логом и его название' & @CRLF & 'третья строка - путь к файлу исключений и его название' & @CRLF & '@ScriptDir директория в из которой запускается скрипт' & @CRLF)
    Exit
EndIf


Ошибка в логике формирования строк с именами файлов, в частности использование конструкций вида '@ScriptDir & "

Вы в свой файл conf.ini загляните, посмейтесь.
 
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Как можно его заставить нормально с этим работать?)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
. . . :shok:

Вам бы автору скрипта написать о своей проблеме.
 
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Я повторюсь) я автор этого скрипта)
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Tasolcheg [?]

Код:
; как должно быть
FileWrite( @ScriptDir & "\log.txt" , "Начало очистки " & $sTimePC & " " & $sDatePC & @CRLF)

; как получается после чтения строки из файла
FileWrite('@ScriptDir & "\log.txt"', "Начало очистки " & $sTimePC & " " & $sDatePC & @CRLF)
 
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
В общем сделал так
Код:
$conf = (@ScriptDir & "\conf.ini")
$hSearch = FileFindFirstFile("conf.ini")
If $hSearch = -1 Then
    FileWrite($conf, "\\name-pc\123\111\" & @CRLF & "путь к логу\log.txt" & @CRLF & @CRLF  & "первая строка - путь к директории в которой будет производиться чистка" & @CRLF & "вторая строка - путь к файлу с логом и его название" & @CRLF)
    Exit
EndIf
а в файле ты уже ручками прописываешь полный путь.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Tasolcheg [?]
ручками прописываешь полный путь
Оставьте просто имя файла
Код:
... @CRLF & "log.txt" & @CRLF ...
При отсутствии пути файл создаётся в папке со скриптом, т.е. как вы и хотели.
 
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Проблема была не с тем где он создается, а что в него пишется.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Ну уже разжевали дальше некуда!

Код:
$hSearch = FileFindFirstFile("conf.ini")
If $hSearch = -1 Then
    FileWrite($conf, '\\name-pc\123\111\' & @CRLF & "log.txt" & @CRLF & "iskl.ini" & @CRLF & 'первая строка - путь к директории в которой будет производиться чистка' & @CRLF & 'вторая строка - путь к файлу с логом и его название' & @CRLF & 'третья строка - путь к файлу исключений и его название')
    Exit
EndIf


Вам бы всё же сразу надо было автору скрипта написать о своей проблеме.
 
Автор
T

Tasolcheg

Новичок
Сообщения
27
Репутация
0
Проблема решилась уже давно) и я повторю третий раз) я евляюсь автором этого скрипта).
 
Верх