Что нового

[Автоматизация] Вставить имя скопированного\перенесённого файла в Logfile

IP_rat

Новичок
Сообщения
9
Репутация
0
Доброго времени суток.
[hide]Прошу прощения если вопрос присутствовал на форуме я старательно искал но найти подобного так и не смог.
Работаю в AutoIT не много, поэтому не судите строго если чего-то не знаю...[/hide]
Итак есть цель - автоматизировать ряд манипуляций с файлами - архивация, копирование, перенос и т д что я успешно (хотя и корявенько) осуществил. Но, кроме этого нужно подробное логирование переноса каждого файла поимённо.
Тобишь чтобы был лог в котором будет время переноса и имя перенесённого файла.

###Журнал событий###
2016-05-04 17:48:01 (0006) Программа запущена
2016-05-04 17:48:01 (0008) Pinging...
2016-05-04 17:48:01 (0005) Пинг успешно выполнен, Time = 30 ms
2016-05-04 17:48:02 (0010) Резервное копирование документов на сервер
2016-05-04 17:48:02 (0011) Резервное копирование реестров на сервер
2016-05-04 17:48:02 (0012) Архивация
2016-05-04 17:48:02 (0013) Конец архивации
2016-05-04 17:48:03 (0014) Документы отправлены на сервер для передачи
2016-05-04 17:48:03 (0015) Реестры отправлены на сервер для передачи
2016-05-04 17:48:03 (0007) Программа завершена

Брал за основу лога UDP от уважаемого "Vashied"-а http://autoit-script.ru/index.php?topic=2586.0
Но как в описание втиснуть имена файлов?? :(
 
A

Alofa

Гость
Что-то на подобии такого?
Код:
#include <Log.au3>

Global $hLog, $iCount
Global $MyPictures = @DesktopCommonDir & '\Рисунки' ; Куда копируем картинки
Global $Pictures = 'C:\Users\Public\Pictures\Sample Pictures' ; Откуда копируем картинки

$hLog = _Log_Open(@ScriptDir & '\MyProg.log', '###Журнал событий###', True)
If DirCreate($MyPictures) Then
	_Log_Report($hLog, 'Создан каталог "' & $MyPictures & '".', _iCount())
Else
	_Log_Report($hLog, 'Каталог "' & $MyPictures & '" не может быть создан. Выход', _iCount())
	_Exit()
EndIf

Local $hSearch, $iStart, $iStop, $sFile, $sText
Switch FileExists($Pictures)
	Case 1
		$hSearch = FileFindFirstFile($Pictures & '\*.*')
		If @error Then
			_Log_Report($hLog, 'Каталог "' & $Pictures & '" пуст.', _iCount())
			_Exit()
		EndIf
		_Log_Report($hLog, 'Начало копирования файлов.', _iCount())
		While 1
			$sFile = FileFindNextFile($hSearch)
			If @error Then
				$sText = StringTrimRight($sText, 2)
				_Log_Report($hLog, 'Конец копирования файлов. Скопировано ' & $iStop & ' из ' & $iStart & @CRLF & '. (' & $sText & ').', _iCount())
				ExitLoop
			EndIf
			If Not @extended Then
				$iStart += 1
				If FileCopy($Pictures & '\' & $sFile, $MyPictures, 1) Then
					$sText &= $sFile & ', '
					$iStop += 1
				EndIf
			EndIf
		WEnd
	Case Else
		_Log_Report($hLog, 'Произошла ошибка при открытии каталога "' & $Pictures & '".', _iCount())
EndSwitch

_Exit()
Func _Exit()
	_Log_Report($hLog, 'Программа завершена.', _iCount())
	_Log_Close($hLog)
	Exit
EndFunc   ;==>_Exit

Func _iCount()
	$iCount += 1
	Return $iCount
EndFunc   ;==>_iCount
Скрипт копирует образцы рисунков Windows на рабочий стол.
 
Автор
I

IP_rat

Новичок
Сообщения
9
Репутация
0
Alofa сказал(а):
Что-то на подобии такого?
Код:
#include <Log.au3>

Global $hLog, $iCount
Global $MyPictures = @DesktopCommonDir & '\Рисунки' ; Куда копируем картинки
Global $Pictures = 'C:\Users\Public\Pictures\Sample Pictures' ; Откуда копируем картинки

$hLog = _Log_Open(@ScriptDir & '\MyProg.log', '###Журнал событий###', True)
If DirCreate($MyPictures) Then
	_Log_Report($hLog, 'Создан каталог "' & $MyPictures & '".', _iCount())
Else
	_Log_Report($hLog, 'Каталог "' & $MyPictures & '" не может быть создан. Выход', _iCount())
	_Exit()
EndIf

Local $hSearch, $iStart, $iStop, $sFile, $sText
Switch FileExists($Pictures)
	Case 1
		$hSearch = FileFindFirstFile($Pictures & '\*.*')
		If @error Then
			_Log_Report($hLog, 'Каталог "' & $Pictures & '" пуст.', _iCount())
			_Exit()
		EndIf
		_Log_Report($hLog, 'Начало копирования файлов.', _iCount())
		While 1
			$sFile = FileFindNextFile($hSearch)
			If @error Then
				$sText = StringTrimRight($sText, 2)
				_Log_Report($hLog, 'Конец копирования файлов. Скопировано ' & $iStop & ' из ' & $iStart & @CRLF & '. (' & $sText & ').', _iCount())
				ExitLoop
			EndIf
			If Not @extended Then
				$iStart += 1
				If FileCopy($Pictures & '\' & $sFile, $MyPictures, 1) Then
					$sText &= $sFile & ', '
					$iStop += 1
				EndIf
			EndIf
		WEnd
	Case Else
		_Log_Report($hLog, 'Произошла ошибка при открытии каталога "' & $Pictures & '".', _iCount())
EndSwitch

_Exit()
Func _Exit()
	_Log_Report($hLog, 'Программа завершена.', _iCount())
	_Log_Close($hLog)
	Exit
EndFunc   ;==>_Exit

Func _iCount()
	$iCount += 1
	Return $iCount
EndFunc   ;==>_iCount
Скрипт копирует образцы рисунков Windows на рабочий стол.

Огромное спасибо, вы меня выручили! :IL_AutoIt_1:
 
Верх