embago
Goto Top

tasks zufällig ausführen

Ein tool was tasks zB 4x täglich ausführt aber nie zur selben Zeit ??

Hallo zusammen,
Ich benötige ein tools, welches diverse task zufällig ausführen kann.
Der wintaskplaner zZ kann nur Tage, Wochen, Minuten, Sekunden usw.
Ich benötige aber ein tool was tasks batchdateien/macros zB jeden Tag
3x mal ausführt, aber nicht zur selben Zeit.
Kennt jemand so etwas ??
Danke schon mal im Voraus und noch eine schöne Woche ;o)
Iggy

Content-ID: 42780

Url: https://administrator.de/contentid/42780

Ausgedruckt am: 05.11.2024 um 16:11 Uhr

bastla
bastla 23.10.2006 um 18:49:52 Uhr
Goto Top
Hallo Iggy!

Wie zufällig ist "zufällig" (dh, gibt es irgendwelche Vorgaben, zB frühestens oder spätestens oder Mindestabstand, ...)?

Und, aus reiner Neugier: Was machst Du damit?

Grüße
bastla
Biber
Biber 23.10.2006 um 19:17:43 Uhr
Goto Top
Na, da bin ich auch neugierig...

Ich lege mal einen formatierten Batch-Oneliner vor:
::--------snipp ZufallsTask.bat
@echo off & setlocal EnableDelayedExpansion
@for %%i in (Mo,Di,Mi,Do,Fr,Sa,So) do @(
@for %%z in ("c:\test\example No1.bat", d:\scripts\shredderAllmails.exe, e:\other\quark.cmd) do @(  
    set /a "x=100+!random!%%23">nul  & set /a "y=100+!random!%%59">nul   
    At !x:~-2!:!y:~-2! /next:%%i "%%~z" >nul|| echo Fehler  !x:~-2!:!y:~-2! /next:%%i "%%~z"  
    ))

Wenn ich den Batch starte, dann werden die drei angegebenen Tasks jeweils 1x täglich ausgeführt (=21 Tasks für die nächsten 7 Tage festgelegt).
Nach dem zweiten Start erhalte ich folgendes Bild (42 Tasks):
>for /f "delims= skip=1" %i in ('at^|sort') do @echo %i  
        1   Kommenden   Mo          13:56         "c:\test\example No1.bat"  
        2   Kommenden   Mo          22:14         d:\scripts\shredderAllmails.exe
        3   Kommenden   Mo          05:41         e:\other\quark.cmd
        4   Kommenden   Di          04:10         "c:\test\example No1.bat"  
        5   Kommenden   Di          18:10         d:\scripts\shredderAllmails.exe
        6   Kommenden   Di          20:44         e:\other\quark.cmd
        7   Kommenden   Mi          17:57         "c:\test\example No1.bat"  
        8   Kommenden   Mi          01:34         d:\scripts\shredderAllmails.exe
        9   Kommenden   Mi          14:22         e:\other\quark.cmd
       10   Kommenden   Do          12:49         "c:\test\example No1.bat"  
       11   Kommenden   Do          14:45         d:\scripts\shredderAllmails.exe
       12   Kommenden   Do          17:06         e:\other\quark.cmd
       13   Kommenden   Fr          00:56         "c:\test\example No1.bat"  
       14   Kommenden   Fr          03:48         d:\scripts\shredderAllmails.exe
       15   Kommenden   Fr          19:11         e:\other\quark.cmd
       16   Kommenden   Sa          15:55         "c:\test\example No1.bat"  
       17   Kommenden   Sa          08:00         d:\scripts\shredderAllmails.exe
       18   Kommenden   Sa          18:26         e:\other\quark.cmd
       19   Kommenden   So          22:21         "c:\test\example No1.bat"  
       20   Kommenden   So          17:38         d:\scripts\shredderAllmails.exe
       21   Kommenden   So          07:18         e:\other\quark.cmd
       22   Kommenden   Mo          06:42         "c:\test\example No1.bat"  
       23   Kommenden   Mo          22:29         d:\scripts\shredderAllmails.exe
       24   Kommenden   Mo          16:04         e:\other\quark.cmd
       25   Kommenden   Di          05:29         "c:\test\example No1.bat"  
       26   Kommenden   Di          05:20         d:\scripts\shredderAllmails.exe
       27   Kommenden   Di          17:46         e:\other\quark.cmd
       28   Kommenden   Mi          20:39         "c:\test\example No1.bat"  
       29   Kommenden   Mi          13:30         d:\scripts\shredderAllmails.exe
       30   Kommenden   Mi          20:39         e:\other\quark.cmd
       31   Kommenden   Do          01:25         "c:\test\example No1.bat"  
       32   Kommenden   Do          00:37         d:\scripts\shredderAllmails.exe
       33   Kommenden   Do          00:20         e:\other\quark.cmd
       34   Kommenden   Fr          00:09         "c:\test\example No1.bat"  
       35   Kommenden   Fr          02:32         d:\scripts\shredderAllmails.exe
       36   Kommenden   Fr          02:43         e:\other\quark.cmd
       37   Kommenden   Sa          00:01         "c:\test\example No1.bat"  
       38   Kommenden   Sa          08:36         d:\scripts\shredderAllmails.exe
       39   Kommenden   Sa          17:27         e:\other\quark.cmd
       40   Kommenden   So          02:44         "c:\test\example No1.bat"  
       41   Kommenden   So          18:12         d:\scripts\shredderAllmails.exe
       42   Kommenden   So          12:53         e:\other\quark.cmd
Will ich jeden Task mehrmals am Tag laufen lassen, z.B. 3x, kostet mich das eine halbe Zeile:
@echo off & setlocal EnableDelayedExpansion
@for %%i in (Mo,Di,Mi,Do,Fr,Sa,So) do @(
@for %%z in ("c:\test\example No1.bat", d:\scripts\shredderAllmails.exe, e:\other\quark.cmd) do @(  
<b>@for %%j in (1, 2 3) do @(</b>
    set /a "x=100+!random!%%23">nul  & set /a "y=100+!random!%%59">nul   
    At !x:~-2!:!y:~-2! /next:%%i "%%~z" >nul|| echo Fehler  !x:~-2!:!y:~-2! /next:%%i "%%~z"  
    )))

...Ergebnis ( 7 Tage mal 3 Tasks * 3*täglich = 63 Tasks):
....
       56   Kommenden   So          15:24         "c:\test\example No1.bat"  
       57   Kommenden   So          17:35         "c:\test\example No1.bat"  
       58   Kommenden   So          19:52         d:\scripts\shredderAllmails.exe
       59   Kommenden   So          01:52         d:\scripts\shredderAllmails.exe
       60   Kommenden   So          08:52         d:\scripts\shredderAllmails.exe
       61   Kommenden   So          03:55         e:\other\quark.cmd
       62   Kommenden   So          10:19         e:\other\quark.cmd
       63   Kommenden   So          02:01         e:\other\quark.cmd

War das so in etwa Dein Plan, Iggy?

Gruß
Biber
Nachtrag: Zwei beim Spielen nützliche CMD-Befehle:
> for /f "delims= skip=1" %i in ('at^|sort /+22') do @echo %i  
--------> Sortiert die angelegten Tasks nach Wochentag/Uhrzeit statt nach Task-Nummer
> for /l %i in (1,1,63) do @At %i /del
----> Kloppt den ganzen Spielkram wieder in die Tonne.
[Edit] Anmerkung zu "setlocal EnableDelayedExpansion" siehe unten. [/Edit]
embago
embago 23.10.2006 um 22:46:08 Uhr
Goto Top
Hallo,
Erstmal:
Danke für eure schnelle Hilfe !
@ bastla
Ich mache diverse Langzeit-Messungen mit einem PC Oszilloskop und so kann ich zB
einen Zufallsscreenshot oder auch eine plötzliche Spannungserhöhung oder eine Wechsel
in eine andere Ferquenz simulieren, indem ich gewisse Macros aktiviere. Dafür benutze ich ein tool was Mausbewegugen auszeichnet.
Beispiel auf eine Woche gesehn:
Ich will zB 3x am Tag IRGENDWANN 3 verschiedene Macros für einen Fequenzwechsel ausführen lassen. 2 Macros sollen 5x die Woche auch IRGENDWANN einen spezielle record mod aktivieren, ein Macro soll den ganzen Versuchsaufbau 3x die Woche komplett reseten usw. und hier soll genau das Script das "zufällige" Auftreten von Problemen simulieren.
Auch sehr nützlich um zufällige Frequenzpattern zu gennerieren usw.
Ich habe dafür viele Verwendungen dafür...
Wenn man sowas statisch, fest nach Plan macht, ist das für mich nicht das Leben ;o)

@ biber:
Wenn ich den Batch starte, dann werden die drei angegebenen Tasks jeweils 1x täglich ausgeführt (=21 Tasks für die nächsten 7 Tage festgelegt). Nach dem zweiten Start erhalte ich folgendes Bild (42 Tasks)

Will ich jeden Task mehrmals am Tag laufen lassen, z.B. 3x, kostet mich das eine halbe Zeile:

Genau so was habe ich gemeint....
Nur ich bin nicht so fit was scripting angeht, hatte für Automationen nie eine Verwendung,
aber jetzt schon ;o)
Einfach txt neu, reinkopieren, Pfade ändern, als *.bat speichern und ausführen ??
DaS ruft nur Fehlermeldungen vor (Fehlender Operator)
Oder brauch ich da sowas wie vb ??
Wie gesagt, ist Neuland für mich...dachte da gäbs evt. ein Proggi, aber sowas selbstgebautes ist auch besser, da flexibler. Und so lern ich auch was übers skripten ;o)
Biber
Biber 24.10.2006 um 08:24:17 Uhr
Goto Top
Moin embago,

Einfach txt neu, reinkopieren, Pfade ändern, als *.bat speichern und ausführen ??
Genau.
DaS ruft nur Fehlermeldungen vor (Fehlender Operator)
Jepp, war mir gestern zu spät eingefallen.
Bei mir ist als Standardeinstellung für das CMD-Environment eingestellt:
Setlocal EnableDelayedExpansion
[Diese Zeile sorgt dafür, dass die Variablenschreibweise !random! "verstanden" wird.]
Das entspricht nicht der M$-Werkseinstellung - diese Zeile muss ggf. als neue erste Batchzeile mit rein. Ich ergänze es oben.
Dann hat sich zwar die Anzahl Codezeilen verdoppelt, aber egal..*gg

Gruß
Biber
embago
embago 29.10.2006 um 22:11:25 Uhr
Goto Top
Nochmals vielen, vielen Dank Biber !!
Ich habe mich heute mal intensiv damit beschäftigt, nachdem ich es nur mal kurz angetestet
habe (die liebe Zeit) und nur Fehler bekommen habe...hatte vergessen den task service zu
aktivieren ;o/
Jetzt läufts und alles geht reibungslos...THX

Gruss aus Köln
Iggy