alle x minuten was machen

  • ich will eine funktion in mein skript einbauen, dass das die ganze zeit im hintergrund läuft und alle x minuten/stunden einen bestimmten dos-befehl ausführt
    (ist für ein backup-script, dass automatisch alle 60min daten sichern soll)

    hab in der hilfe schon gesucht, aber nix passendes gefunen... wie geht das?

    danke schon mal
    alexirsi

  • Z.B. so ...

    [autoit]


    #include <Process.au3>

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(3600000)
    _RunDos("start --- Das was du willst ---")
    Wend

    [/autoit]

    Mfg

    Analyzer

    • Offizieller Beitrag

    Wobei hast du das Problem?
    alle 60 min: Sleep(3600000)
    Dos-Befehl: _RunDOS( $sCommand )
    Als Bsp.

    [autoit]

    HotKeySet("^{ESC}", "Esc") ; zum Verlassen der Schleife

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(3600000)
    _RunDOS( $sCommand )
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func Esc()
    Exit
    EndFunc

    [/autoit]

    EDIT:
    Da war doch wer schneller ;)
    Aber 2-mal das selbe Ergebnis - dann muß es ja stimmen! :)

    • Offizieller Beitrag

    Hi,

    okay ich habe etwas ähnliches:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}", "_end")

    [/autoit] [autoit][/autoit] [autoit]

    Global $DoTime = 5 ; = Min
    Global $befehl = "start https://autoit.de/www.google.de"

    [/autoit] [autoit][/autoit] [autoit]

    $begin = TimerInit()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    If TimerDiff($begin) >= ($DoTime * 1000 * 60) Then
    _DOS($befehl)
    $begin = TimerInit()
    EndIf
    ToolTip(Round(TimerDiff($begin)) / 1000 & " Sekunden")
    Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _DOS($befehl)
    Run(@ComSpec & ' /c ' & $befehl, '', @SW_HIDE)
    EndFunc ;==>_DOS

    [/autoit] [autoit][/autoit] [autoit]

    Func _end()
    Exit (0)
    EndFunc ;==>_end

    [/autoit]

    So long,

    Mega

  • ok danke an alle für die hilfe,

    jetzt hab ich noch ein problem: ich hab schon eine while-schleife in meinem script (das tray-menü) und weiß jetzt leider nicht, wie ich die 2. while-schleife einbringen soll...

    Hier das skript (es soll automatisch alle 10min den inhalt von Z:\ protokollieren und als datei speichern:

    [autoit]

    #include <Process.au3>
    #Include <Constants.au3>

    [/autoit][autoit][/autoit][autoit]

    HotKeySet("{ESC}", "_end")

    [/autoit][autoit][/autoit][autoit]

    Opt("TrayMenuMode",1)

    [/autoit][autoit][/autoit][autoit]

    $info=TrayCreateItem("Anleitung")
    TrayCreateItem("")
    $loggen=TrayCreateItem("Log erstellen")
    $ende=TrayCreateItem("Beenden")

    [/autoit][autoit][/autoit][autoit]

    DirCreate("Z:/[Logs]")
    DirCreate("Z:/[Logs]/" & @YEAR & "-" & @MON)

    [/autoit][autoit][/autoit][autoit]

    TraySetState()

    [/autoit][autoit][/autoit][autoit]

    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $info
    Msgbox(64, "Info:", "Es wird automatsch alle 10min ein Log vom Inhalt der"&@CRLF&"Z:\ Partition erstellt und im [Log]-Ordner gespeichert!")
    Case $msg = $loggen
    _doslog()
    Case $msg = $ende
    Exit
    EndSelect
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _end()
    Exit (0)
    EndFunc

    Func _doslog()
    _RunDOS("dir Z:\ /w /s /o:g > [Logs]/" & @YEAR & "-" & @MON & "/" & @HOUR & "-" & @MIN & ".log")
    EndFunc

    [/autoit]

    jetzt will ich das noch einbauen:

    [autoit]

    While 1
    Sleep(600000)
    TrayTip("DirectoryLogger", "Log wird erstellt...", 3)
    _doslog()
    WEnd

    [/autoit]
  • hallo, ich würde es so machen :)
    die "/" sollten im normal fall so sein "\", aber autoit ist da nicht all zu streng :)
    im dos befehl war auch noch ein fehler (glaube ich)

    Spoiler anzeigen
    [autoit]


    #include <Process.au3>
    #Include <Constants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ESC}", "_end")

    [/autoit] [autoit][/autoit] [autoit]

    Opt("TrayMenuMode",1)

    [/autoit] [autoit][/autoit] [autoit]

    $info=TrayCreateItem("Anleitung")
    TrayCreateItem("")
    $loggen=TrayCreateItem("Log erstellen")
    $ende=TrayCreateItem("Beenden")

    [/autoit] [autoit][/autoit] [autoit]

    DirCreate("Z:\[Logs]")
    DirCreate("Z:\[Logs]\" & @YEAR & "-" & @MON)

    [/autoit] [autoit][/autoit] [autoit]

    TraySetState()

    [/autoit] [autoit][/autoit] [autoit]

    AdlibEnable ( "_time" , 600000 )

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $info
    Msgbox(64, "Info:", "Es wird automatsch alle 10min ein Log vom Inhalt der" & @CRLF & "Z:\ Partition erstellt und im [Log]-Ordner gespeichert!")
    Case $msg = $loggen
    _doslog()
    Case $msg = $ende
    Exit
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    AdlibDisable()

    [/autoit] [autoit][/autoit] [autoit]

    Func _end()
    Exit (0)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _doslog()
    _RunDOS("dir Z:\ /w /s /o:g > Z:\[Logs]\" & @YEAR & "-" & @MON & "\" & @HOUR & "-" & @MIN & ".log")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _time()
    TrayTip("DirectoryLogger", "Log wird erstellt...", 3)
    _doslog()
    Sleep(3000)
    TrayTip("", "", 0)
    EndFunc

    [/autoit]

    Doktore

    Einmal editiert, zuletzt von Dr.Galvany (15. Oktober 2006 um 09:19)