Показать полную графическую версию : Фаил метка.
krasavchik0
21-10-2020, 14:20
Написал скрипт, скрипт нужно выполнять 1 раз в день при входе пользователя в ПК. Так как входов в пк может быть много то планирую создавать фаил ввида 2020.20.21 и проверять его наличие. Если есть то в данные сутки скрипт отработал и не нужно его дальше отрабатывать. Если файла не то продолжить выполнение.
Повалился на данный момент в том месте, что не знаю как создать фаил с именем ткущая дата. Может кто подскажет как это сделать?
krasavchik0
21-10-2020, 14:49
Все решил вопрос $hFile = FileOpen(@ScriptDir & "\" & $log & "\" & @YEAR & @MON & @MDAY & ".txt", 2)
планирую создавать фаил ввида 2020.20.21 и проверять его наличие »
А не проще сделать метку внутри скрипта?
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $iTimer = TimerInit (http://www.autoitscript.com/autoit3/docs/functions/TimerInit.htm)()
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $iFrequency = 1000 * 60 * 60 * 24 ;24 hours
;First run
_MyProc()
While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(10)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) TimerDiff (http://www.autoitscript.com/autoit3/docs/functions/TimerDiff.htm)($iTimer) >= $iFrequency Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iTimer = TimerInit (http://www.autoitscript.com/autoit3/docs/functions/TimerInit.htm)()
_MyProc()
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)
Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _MyProc()
;Do something
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)
Creat0R, если пользователь сделает, скажем, три входа/выхода в день — такой скрипт отработает все три раза при входе.
Файл «с именем текущая дата» мне тоже не нравится. Проще иметь обычный файл с заранее известным именем и просто проверять дату его создания/последней модификации.
такой скрипт отработает все три раза при входе »
Ну да я неверно понял сути, думал что под входом имеется в виду активность пользователя.
Ещё вариант (мне кажется более корректный):
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <Date.au3>
$sConfig = @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@ScriptDir) & '\Config.ini'
$iLastCheck = IniRead (http://www.autoitscript.com/autoit3/docs/functions/IniRead.htm)($sConfig, 'Main', 'Last Check', 0)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iLastCheck = 0 Or (http://www.autoitscript.com/autoit3/docs/keywords.htm#Or) _DateDiff (http://www.autoitscript.com/autoit3/docs/libfunctions/_DateDiff.htm)('h', $iLastCheck, _NowCalc (http://www.autoitscript.com/autoit3/docs/libfunctions/_NowCalc.htm)()) >= 24 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
IniWrite (http://www.autoitscript.com/autoit3/docs/functions/IniWrite.htm)($sConfig, 'Main', 'Last Check', _NowCalc (http://www.autoitscript.com/autoit3/docs/libfunctions/_NowCalc.htm)())
_MyProc()
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _MyProc()
;Do something
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(64, @ScriptName (http://www.autoitscript.com/autoit3/docs/macros.htm#@ScriptName), 'Checked')
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.