Hochzählen einer Variable in einer Textdatei beim ausführen einer Batch Datei
Hallo die Damen und Herren,
ich habe da ein kleines Problem, welches wahrscheinlich für die meisten von Euch erbärmlich einfach erscheint.
Tortz allem beschäftigt es mich als absoluten Programmieranfänger. Ich versuche einmal das Problem zu schildern.
Vorab: Das Problem soll kompelett mit Batch Dateien gelöst werden!
Ich habe ein Programm, das in unregelmäßigen Abständen eine Batch Datei aufruft (Batch Datei #1), das macht es auch schon. Diese Batch Datei soll jetzt ganz simpel eine Variable in einer Text Datei hochzählen. Also in der Text Datei steht eine Variable mit dem Wert 1 und die Batch Datei #1 erhöht den Wert dieser Variablen wenn sie ausgeführt werden um den Wert 1 (Also nachdem die Batch Datei #1 das zehnte mal ausgeführt wurde, steht in der Text Datei der Wert 10).
So ich denke mal das war mein kleineres Problem. Jetzt kommt die zweite Batch Datei ins Spiel. Diese Batch Datei #2 soll nun alle 10 Minuten die Variable aus der oben erwähnten Text Datei auslesen. Wenn der Wert dieser Variablen größer 100 ist, soll diese Batch Datei #2 eine e-mail versenden. Ist der Wert kleiner 100 soll der Wert in der Textdatei wieder auf ihren Anfangswert 1 zurückgesetzt werden.
Das mit dem e-mail versenden bekomme ich hin aber das alles drum herum leider nicht.
Ich hoffe ich konnte mein Problem einigermaßen deutlich beschreiben, ansonsten bemühe ich mich gerne noch um eine andere/ausführlichere Beschreibung.
Vielen Dank schon einmal im Voraus.
MfG Knechtibus
ich habe da ein kleines Problem, welches wahrscheinlich für die meisten von Euch erbärmlich einfach erscheint.
Tortz allem beschäftigt es mich als absoluten Programmieranfänger. Ich versuche einmal das Problem zu schildern.
Vorab: Das Problem soll kompelett mit Batch Dateien gelöst werden!
Ich habe ein Programm, das in unregelmäßigen Abständen eine Batch Datei aufruft (Batch Datei #1), das macht es auch schon. Diese Batch Datei soll jetzt ganz simpel eine Variable in einer Text Datei hochzählen. Also in der Text Datei steht eine Variable mit dem Wert 1 und die Batch Datei #1 erhöht den Wert dieser Variablen wenn sie ausgeführt werden um den Wert 1 (Also nachdem die Batch Datei #1 das zehnte mal ausgeführt wurde, steht in der Text Datei der Wert 10).
So ich denke mal das war mein kleineres Problem. Jetzt kommt die zweite Batch Datei ins Spiel. Diese Batch Datei #2 soll nun alle 10 Minuten die Variable aus der oben erwähnten Text Datei auslesen. Wenn der Wert dieser Variablen größer 100 ist, soll diese Batch Datei #2 eine e-mail versenden. Ist der Wert kleiner 100 soll der Wert in der Textdatei wieder auf ihren Anfangswert 1 zurückgesetzt werden.
Das mit dem e-mail versenden bekomme ich hin aber das alles drum herum leider nicht.
Ich hoffe ich konnte mein Problem einigermaßen deutlich beschreiben, ansonsten bemühe ich mich gerne noch um eine andere/ausführlichere Beschreibung.
Vielen Dank schon einmal im Voraus.
MfG Knechtibus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109821
Url: https://administrator.de/contentid/109821
Ausgedruckt am: 20.11.2024 um 09:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo knechtibus und willkommen im Forum!
Mit dem Hochzählen hattest Du recht - keine große Sache:
Das Überprüfen und Mail-Versenden in der zweiten Datei sollte aber auch keine Probleme bereiten:
Da Du vermutlich nicht wirklich 3 Fälle unterscheiden willst ("größer 100", "kleiner 100", und als weitere Möglichkeit "gleich 100"), wird in der obigen Fassung auch bei einem Wert von genau 100 noch der Anfangswert geschrieben.
Sollte übrigens nach dem Senden der Mail nicht auch der Zähler zurückgesetzt werden (da ansonsten ja in 10 Minuten automatisch die nächste Mail fällig wird)?
Falls ja, würden sich die Zeilen ab Zeilennummer 08 reduzieren auf:
Bliebe noch das Ausführen in 10 Minuten-Abständen ...
Entweder verwendest Du den Taskplaner dafür, oder der Batch2 müsste in einer Schleife laufen und eine jeweils 10-minütige Pause einlegen. Dafür würde sich etwa die "sleep.exe" aus den Windows Server 2003 Resource Kit Tools eignen.
Grüße
bastla
Mit dem Hochzählen hattest Du recht - keine große Sache:
@echo off & setlocal
set "NrDatei=D:\Nummer.txt"
if exist "%NrDatei%" (
set /p Nr=<"%NrDatei%"
) else (
set Nr=0
)
set /a Nr+=1
>"%NrDatei%" echo %Nr%
Das Überprüfen und Mail-Versenden in der zweiten Datei sollte aber auch keine Probleme bereiten:
@echo off & setlocal
set "NrDatei=D:\Nummer.txt"
if exist "%NrDatei%" (
set /p Nr=<"%NrDatei%"
) else (
set Nr=0
)
if %Nr% gtr 100 (
REM SendMail
) else (
>"%NrDatei%" echo 1
)
Sollte übrigens nach dem Senden der Mail nicht auch der Zähler zurückgesetzt werden (da ansonsten ja in 10 Minuten automatisch die nächste Mail fällig wird)?
Falls ja, würden sich die Zeilen ab Zeilennummer 08 reduzieren auf:
if %Nr% gtr 100 REM SendMail
>"%NrDatei%" echo 1
Bliebe noch das Ausführen in 10 Minuten-Abständen ...
Entweder verwendest Du den Taskplaner dafür, oder der Batch2 müsste in einer Schleife laufen und eine jeweils 10-minütige Pause einlegen. Dafür würde sich etwa die "sleep.exe" aus den Windows Server 2003 Resource Kit Tools eignen.
Grüße
bastla