franziska2

AT Befehl per Batch wiederfinden

Guten Morgen,
nachdem ich schon viel aus den Beiträgen gelernt habe, möchte ich mich erstmal bedanken bei allen, die ihr Wissen so freimütig zur Verfügung stellen.
Nun habe ich mich angemeldet, weil ich selbst eine Frage habe.
Ich lege für den Backup geplante Tasks über eine Batchdatei mit dem AT-Befehl an. Wenn ich neue Einstellungen für den Backup haben will, muss ich die alten AT-Befehle löschen. Dabei möchte ich aber nur die löschen, die ich selbst erstellt habe.
Ich müsste also schon während der Erstellung mitschreiben, welche Befehle entstanden sind, und die Liste später wieder abarbeiten.

Meine Batchdatei sieht bisher z.B. so aus:

at /delete /yes

at 08:30 /every:Mi c:\dvu-trv\2.1\pro_backup.bat dvu-trv d:\backup\dvutrv\online f o
at 09:30 /every:Mi c:\dvu-trv\2.1\pro_backup.bat dvu-trv d:\backup\dvutrv\online i o
at 10:30 /every:Mi c:\dvu-trv\2.1\pro_backup.bat dvu-trv d:\backup\dvutrv\online i o

Vielen Dank für Eure Tipps.
Franziska
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 69627

Url: https://administrator.de/forum/at-befehl-per-batch-wiederfinden-69627.html

Ausgedruckt am: 16.05.2025 um 08:05 Uhr

jato11
jato11 27.09.2007 um 09:25:42 Uhr
Goto Top
Hallo Franziska,
wenn ich Dich richtig verstanden habe, erstellen mehrere Leute Tasks.

In Deiner Batch kannst Du hinter Delete den Auftrag angeben, der glöscht werden soll.
Das ist aber nicht sehr komfortabel.

Ich würde für diese Sicherung "Personal Backup" nehmen. Mit einen Mausklick kannst
Du Deine Sicherung geziehlt erstellen und löschen. Und das Backup wird auch schön
protokolliert.
http://www.ieap.uni-kiel.de/surface/ag-berndt/

Viele Grüße
Torsten
franziska2
franziska2 27.09.2007 um 12:12:20 Uhr
Goto Top
Sorry, dass ich mich jetzt erst melde.
Leider muss ich mit Bordmitteln arbeiten. Das Backup-Programm wird durch die Batchdatei aufgerufen und diese soll halt mehrmals pro Tag gestartet werden können. Ich frage die Zeiten mit einem Programm ab und setze sie in AT-Befehle um.
Gruß
Franziska
miniversum
miniversum 27.09.2007 um 18:06:27 Uhr
Goto Top
Du kannst doch die Kennung die Bei der erstellung ausgegeben wird mit einer For schleife abfangen und in eine Datei schreiben. Z.B. so:
FOR /F "tokens=6 delims= " %%i in ('at 08:30 /every:Mi c:\dvu-trv\2.1\pro_backup.bat dvu-trv d:\backup\dvutrv\online f o') do echo %%i>>alteKennung.txt

Bei einem Update liest du dann diese Datei wieder aus und fertig:
FOR /F "delims=" %%i in ('type alteKennung.txt') do at %%i /delete /yes

Ist aber ungetestet.

miniversum
Biber
Biber 27.09.2007 um 19:07:58 Uhr
Goto Top
Moin franziska2,

das Problem würde ich eher pragmatisch angehen, da M$ bei den AT-Jobs nicht so viele Infos wirklich mitschreibt....
"Name", "Owner" und "Description" werden
a) bei AT-Jobs-Erzeugen nicht gefüllt und sind
b) nach dem Erzeugen "not writeable"...
Eine vorbildliche Programmiertechnik, wie wir sie aus Redmond und Neu-Wülferode gewohnt sind.

Beispiel:
>at 5:8  "blafasel"  
Neuer Auftrag hinzugefügt. Kennung = 1
>at
Statuskenn. Tag                     Zeit          Befehlszeile
---------------------------------------------------------------------------
        1   Morgen                  05:08         blafasel
Auch die Überprüfung mit etwas moderneren Mitteln weckt nicht wirklich Hoffnung:
>wmic job list brief
Command   JobId  Name  Owner  Priority
blafasel  1

>wmic job list full

Command=blafasel
DaysOfMonth=
DaysOfWeek=
Description=
ElapsedTime=
InstallDate=
InteractWithDesktop=FALSE
JobId=1
JobStatus=Success
Name=
Notify=
Owner=
Priority=
RunRepeatedly=FALSE
StartTime=********050800.000000+120
Status=
TimeSubmitted=
UntilTime=

...wie zu sehen ist, sind die theoretisch "sichtbaren" Attribute (Command, JobId, Name, Owner, Priority) nicht für Deine Zwecke, für die Frage "Ist der Job von mir gestartet?" brauchbar.

Deshalb als mein Tipp: Pragmatisch rangehen.
  • Du startest deinen Batch wie gehabt
  • und gibst diesem Batch aber noch einen Parameter mehr mit (der im Batch ja auch ignoriert werden kann)
  • und dieser Parameter kann wiedergefunden werden.

Bsp:
>at 08:30 /every:Mi c:\dvu-trv\2.1\pro_backup.bat dvu-trv d:\backup\dvutrv [franziska2_Okt07]
...
>At
Statuskenn. Tag                     Zeit          Befehlszeile
-------------------------------------------------------------------------------
        1   Morgen                  05:08         blafasel
        2   Jeden Mi                08:30         c:\dvu-trv\2.1\pro_backup.bat dvu-trv d:\backup\dvutrv [franziska2_Okt07]

Wiederfinden und Löschen ist dann Spielerei:
>at |find "[franziska2_Okt07]"  
        2   Jeden Mi                08:30         c:\dvu-trv\2.1\pro_backup.bat dvu-trv d:\backup\dvutrv [franziska2_Okt07]

>for /f %i in ('at^|find "[franziska2_Okt07]" ') do @echo AT %i /del  
AT 2 /del

Grüße
Biber
franziska2
franziska2 28.09.2007 um 07:44:27 Uhr
Goto Top
Eure Vorschläge klingen super.
Leider kann ich heute nicht an der Sache arbeiten. Ich melde mich, wenn ich die Sache für mich umgesetzt habe.
Vielen Dank bis dahin.
Franziska
franziska2
franziska2 22.10.2007 um 09:55:14 Uhr
Goto Top
Nach einigen Wochen im anderen Projekt habe ich nun die "pragmatische" Variante verwendet.
Auch weil auf diese Weise nicht noch eine Datei entsteht, auf die man aufpassen muss.
Funktioniert wunderbar für mich.
Vielen Dank und viele Grüße
Franziska
jato11
jato11 22.10.2007 um 10:33:35 Uhr
Goto Top
Schreib uns doch mal, wie Deine Lösung aussieht.
Vielleicht können das auch Andere verwenden.

Viele Grüße
Torsten
franziska2
franziska2 22.10.2007 um 10:44:22 Uhr
Goto Top
Meine Batchdatei mit den AT-Befehlen, die aus einem Progress-Programm heraus erstellt wird, sieht so aus:

for /f %%i in ('at^|find "ATBefehlDVU-TrV" ') do AT %%i /del /yes            
at  09:50  /every:Mo  D:\dvu-trv\backup.bat  dvu-trv  d:\backup\online f  o  ATBefehlDVU-TrV
at  09:54  /every:Mo  D:\dvu-trv\backup.bat  dvu-trv  d:\backup\online i  o  ATBefehlDVU-TrV
Dem eigentlichen Aufruf des Backupprogramms wird also außer den notwendigen Parametern noch ein weiterer mitgegeben "ATBefehlDVU-TrV".

Die for-Schleife in der ersten Zeile, findet dann genau diese Befehle wieder und setzt entsprechend AT mit /del ab.

Der Vorteil für mich ist, dass keine Datei (wie in miniversums Lösung) geschrieben wird, die die erstellten Befehle enthält. Denn diese könnte in unserer Umgebung aus Versehen gelöscht werden.
Mit Hilfe des "überflüssigen" Parameters kann man die richtigen AT-Befehle immer wiedererkennen.
Viele Grüße
Franziska
Biber
Biber 22.10.2007 um 12:15:36 Uhr
Goto Top
Moin Franziska,

danke Dir für die Rückmeldung und das Posten der stabilen "production enviroment"-Lösung.

Ich denke, damit kann auch der eine oder die andere eigene Anforderungen umsetzen.

Den Beitrag schliesse ich jetzt guten Gewissens.

Schönen Tag Dir
Biber