batch zur bestimmten zeit abarbeiten

  • #1
A

abusaid

Neues Mitglied
Themenersteller
Dabei seit
04.04.2005
Beiträge
1
Reaktionspunkte
0
hallo zusammen,

kann ich (per dos-befehl) eine batchdatei zu einer bestimmten zeit abarbeiten? ich möchte es nicht mit dem windows-taskmanager machen. fragt bitte nicht warum. vielen dank für eure hilfe.

abusaid
 
  • #2
Die einzige Möglichkeit, zeitgesteuert eine Batch zu starten, ist ein Taskplaner - wenn du von Windows nicht nutzen willst, musst du dir im Netz nen anderen Taskplaner suchen.

Cheers,
Joshua
 
  • #3
Schau Dir den at Befehl näher an.
Der Zeitplandienst muss aber trotzdem laufen. Ob Du also was gewonnen hast, musste selber entscheiden.

Eddie
 
  • #4
Um diesen Thread mal wieder aus der Verdammnis zu ziehen:

Mein Problem ist folgendes:
Ich will das bei jedem user der sich anmeldet im Loginscript dieser AT Befehl folgendermaßen funktioniert:

- Loginscript läuft durch und führt AT Befehl mit jetziger Systemzeit + 15 Minuten aus
- Loginscript beendet
- Nach 15 Minuten läuft das andere Script per Taskplaner (durch batch übergeben; im Hintergrund laufend) ab.


Ich schaffe es einfach nicht so wie es sollte.
Ich kann die Systemzeit ja mit der Variable time auslesen. Ich kann auch nur die Stellen (Stunden und Minuten) auslesen. Aber leider werden die Werte die ich meinen Variablen übergebe nur als Zeichen gewertet und Befehle wie %mytime%+15 minutes klappen ja leider nicht!

Ich hoff jemand versteht die Problematik.

Vielen Dank
MfG B. Schreiber
 
  • #5
Also so ganz verstanden habe ich es noch nicht.

Im Loginscript brauchst Du doch eigentlich keinen AT. Das kannst Du doch direkt dem Script mitgeben.

Der 2te AT Job, wird der über das Loginscript erstellt?

Was genau, und wann soll er machen? Soll der AT Job so erstellt werden das er 15 Minuten nach dem login ausgeführt wird? Quasi beim login die Systemzeit auslesen, und den Job anhand der Daten erstellen?


Gruß

McFly
 
  • #6
McFly282 schrieb:
Im Loginscript brauchst Du doch eigentlich keinen AT. Das kannst Du doch direkt dem Script mitgeben.

Der 2te AT Job,  wird der über das Loginscript erstellt?

Was genau, und wann soll er machen? Soll der AT Job so erstellt werden das er 15 Minuten nach dem login ausgeführt wird? Quasi beim login die Systemzeit auslesen, und den Job anhand der Daten erstellen?

Hmm.. hab mich wohl doch etwas zu kompliziert ausgedrückt! :D

Also nochmal:


Bei uns wird bei der Anmeldung ein Benutzerspezifisches Script ausgeführt, nennen wir es USER.BAT (Dient zum mappen von für den user wichtige Laufwerken und zur Sicherung der Daten).

Die USER.BAT führt sofort ein 2tes Script aus namens SYSTEM.BAT (Dient zum mappen von Allgemeinen Laufwerken und zum loggen diverser Informationen.)

Die SYSTEM.BAT wiederum, startet kurz vor Ende ein Script Namens SCAN.BAT (Dieses führt einen Scan der Festplatte nach diversen Programmen etc. durch)


Das Problem ist das die SCAN.BAT für einen etwas längeren Zeitraum mächtig Systemresourcen frisst, was schlecht ist, da die Anwender gleich ihr Mailprogramm etc. starten was die Arbeit am PC anfangs sehr zäh werden lässt.

Mein Ziel ist es in der SYSTEM.BAT per AT Befehl die SCAN.BAT 15 Minuten später auszuführen und zwar so das wenn diese dann ausgeführt wird, den User nicht durch ein erneutes PopUp stört.
Wir versuchen so wenig Fenster wie möglich für den User ersichtlich zu machen.


Systemzeit + 15 Minuten triffts perfekt.
Habe mittlerweile auch schon einen Ansatz gefunden der in etwa so aussieht:
Code:
set STUNDEN=%time:~0,2%
set MINUTEN=%time:~3,2%

if %MINUTEN% leq 15 set MINUTEN=30&goto END
if %MINUTEN% leq 30 set MINUTEN=45&goto END
if %MINUTEN% leq 45 set MINUTEN=59&goto END

Somit hätte ich die Zeit für den Fall ermittelt das sich die Minuten im Zeitraum von 0-45 befinden (wobei die Startzeit ja dann auch zwischen 14 und 30 Minuten variiert).
Wenn nun aber  09:46 Uhr ist dann sollten die Minuten auf 15 und die stunden auf 10 gesetzt werden (10:15).
Und da ist der Hund begraben.

Eine Möglichkeit wäre ja im Anschluss an das oben:

Code:
if %MINUTEN% gtr 45 set MINUTEN=15

if %STUNDEN% EQU 0 set STUNDEN=1&goto END
if %STUNDEN% EQU 1 set STUNDEN=2&goto END
if %STUNDEN% EQU 2 set STUNDEN=3&goto END
...
...
if %STUNDEN% EQU 23 set STUNDEN=0&goto END

:END

at %STUNDEN%:%MINUTEN% X:\verzeichnis\SCAN.BAT

Das würde ja eventuell funktionieren sieht aber aus wie der letzte Dreck und dann weiß ich auch nicht ob es mit dem Stunden Format hinhaut, da 9 Uhr ja einstellig und  z.B. 13 Uhr zweistellig ist.

Hast du eventuell einen Vorschlag? Schleifen gibts hier ja leider keine gescheiten mit denen man rumtricksen könnte um das komprimieren! :)

Am einfachsten wäre wirklich ein Einzeiler mit

Code:
At %time% + 15 Minuten X:\verzeichnis\SCAN.BAT

Aber leider können wir ja nicht addieren geschweige denn mit einer Systemzeitvariablen arbeiten die bei Minuten ab 60 runter auf 0 springt etc.

Das war glaube ich ausführlich genug! :)
Ich danke schonmal im vorraus
 
  • #7
wieso lässt du das script nicht mit der sleep.exe einfach 15 min. lang warten.
hier zu finden www.hotelreitlwirt.at/forum

einfach in der batch:
Code:
sleep 900

sollte eigentlich für deine zwecke geeignet sein
 
  • #8
Die sleep.exe ist nicht auf jedem Rechner drauf und außerdem lässt sich das Fenster damit ja nicht verstecken.
Es soll wirklich nicht sichtbar sein. Und das geht meines Wissens nur mit dem AT Befehl als Geplanter Task.
 
  • #9
die sleep.exe muss ja nur auf dem server liegen, so wie normalerweise ja auch die loginscripts.
mit dem fenster hast du wohl recht...
 
Thema:

batch zur bestimmten zeit abarbeiten

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.489
Neuestes Mitglied
DonMartin
Oben