Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Фаил метка. (http://forum.oszone.net/showthread.php?t=346780)

krasavchik0 21-10-2020 14:20 2937091

Фаил метка.
 
Написал скрипт, скрипт нужно выполнять 1 раз в день при входе пользователя в ПК. Так как входов в пк может быть много то планирую создавать фаил ввида 2020.20.21 и проверять его наличие. Если есть то в данные сутки скрипт отработал и не нужно его дальше отрабатывать. Если файла не то продолжить выполнение.
Повалился на данный момент в том месте, что не знаю как создать фаил с именем ткущая дата. Может кто подскажет как это сделать?

krasavchik0 21-10-2020 14:49 2937093

Все решил вопрос $hFile = FileOpen(@ScriptDir & "\" & $log & "\" & @YEAR & @MON & @MDAY & ".txt", 2)

Creat0R 24-10-2020 14:36 2937409

Цитата:

Цитата krasavchik0
планирую создавать фаил ввида 2020.20.21 и проверять его наличие »

А не проще сделать метку внутри скрипта?

Код:

Global $iTimer = TimerInit()
Global $iFrequency = 1000 * 60 * 60 * 24 ;24 hours

;First run
_MyProc()

While 1
    Sleep(10)

    If TimerDiff($iTimer) >= $iFrequency Then
        $iTimer = TimerInit()
        _MyProc()
    EndIf
WEnd

Func _MyProc()
    ;Do something
EndFunc


Iska 24-10-2020 15:29 2937417

Creat0R, если пользователь сделает, скажем, три входа/выхода в день — такой скрипт отработает все три раза при входе.

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

Creat0R 26-10-2020 23:23 2937678

Цитата:

Цитата Iska
такой скрипт отработает все три раза при входе »

Ну да я неверно понял сути, думал что под входом имеется в виду активность пользователя.

Creat0R 10-02-2021 04:07 2949535

Ещё вариант (мне кажется более корректный):

Код:

#include <Date.au3>

$sConfig = @ScriptDir & '\Config.ini'
$iLastCheck = IniRead($sConfig, 'Main', 'Last Check', 0)

If $iLastCheck = 0 Or _DateDiff('h', $iLastCheck, _NowCalc()) >= 24 Then
    IniWrite($sConfig, 'Main', 'Last Check', _NowCalc())
    _MyProc()
EndIf

Func _MyProc()
    ;Do something
    MsgBox(64, @ScriptName, 'Checked')
EndFunc



Время: 04:36.

Время: 04:36.
© OSzone.net 2001-