Войти

Показать полную графическую версию : Фаил метка.


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)

Creat0R
24-10-2020, 14:36
планирую создавать фаил ввида 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)

Iska
24-10-2020, 15:29
Creat0R, если пользователь сделает, скажем, три входа/выхода в день — такой скрипт отработает все три раза при входе.

Файл «с именем текущая дата» мне тоже не нравится. Проще иметь обычный файл с заранее известным именем и просто проверять дату его создания/последней модификации.

Creat0R
26-10-2020, 23:23
такой скрипт отработает все три раза при входе »
Ну да я неверно понял сути, думал что под входом имеется в виду активность пользователя.

Creat0R
10-02-2021, 04:07
Ещё вариант (мне кажется более корректный):

#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