samuelt
Goto Top

Bin zu blöde, Inhalt einer txt Datei auslesen und weiter verarbeiten

Inhalt einer txt. Datei nach einem bestimmten Wort auslesen

Hallo erst mal, ich bin hier neu und hoffe ihr könnt mir weiter helfen?

Folgende Situation:

Gene 6 FTP Server als Basis, bei Ereigniss XY wird eine Batch ausgeführt, welche mir den Namen, die Datei (namen und Pfad) sowie Datum und Uhrzeit in eine txt Datei schreibt und im Anschluss per Mail versendet.
Soweit so gut. nur benötige ich nur von einem Benutzer die Info = Mail wenn dieser einen Up / Download durchgeführt hat.

Meine Batch Datei sieht so aus:

rem create status file

echo von: %1> C:\ftpscript\status.txt
echo wurde folgende Datei hochgeladen: %2>> C:\ftpscript\status.txt
echo um: %3>> C:\ftpscript\status.txt
echo am: %4>> C:\ftpscript\status.txt

rem send the email
remC:\ftpscript\Bmail.exe -s mail-server -t empfänger -f absender -h -a "Es befinden sich neue Daten im Upload" -m C:\ftpscript\status.txt ------=fügt den Inhalt als Body der Mail hinzu
exit

Die txt Datei = status.txt welche dadurch erzeugt wird sieht so aus, und entsprechend auch die Mail:

von: "xyzr"
wurde folgende Datei hochgeladen: "D:\ftp root\upload\test.pdf"
um: "13:44:27 "
am: "10/08/11"

Es geht mir also darum, nur Mails mit diesem Inhalt zu versenden wenn dieser eine bestimmte User (der Account ist namentlich bekannt) einen Up oder Download durchführt.

Ich hab da echt kein Plan von und hoffe es hilft mir jemand von euch.
Bis dahin schon mal vielen Dank!!!!!

Grüße Samuel

Content-Key: 171269

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

Printed on: April 19, 2024 at 01:04 o'clock

Member: Logan000
Logan000 Aug 10, 2011 at 12:31:51 (UTC)
Goto Top
Moin Moin

Wenn ich das richtig sehe enthält der 1. Parameter deines Skripts doch den "Verursacher Namen".
Kannst du nicht in deiner Batch Datei, mit einem If prüfen ob das der Account ist über den du Benachrichtigt werden willst und ansonsten einfach nichts tun?

Gruß L.
Member: samuelT
samuelT Aug 10, 2011 at 12:42:44 (UTC)
Goto Top
Hallo L,
erst mal besten Dank.
Hmm.. ja schon aber genau daran scheitere ich da mein Kentnisse nicht besonders sind.
Ich konnte mich soweit belesen, aber ich schaff es nicht es so umzusetzen das es geht.
%1 zeigt oder übergibt in die txt Datei den User Namen, ausgelesen bzw die Info wird vom Gene 6 FTP ausgegeben, %2 die Dateiinformation %3 und %4 eben Datum und Uhrzeit.

Mein Problem ist echt das ich nur bei einem User Account wenn dieser nen Up oder Downlioad macht ne Mail benötige.

Wenn du ein if Prüfung für mich hast, super gerne!!! Da wär ich echt dankbar für!!!
Aber auch gerne wenn eine andere Lösung denkbar ist, ich muss dat ding nur zum laufen bringen das es so tut wie es soll face-smile

Gruß Samuel
Member: bastla
bastla Aug 10, 2011 at 12:48:18 (UTC)
Goto Top
... bzw mit einem
findstr /b "von:" status.txt|findstr /i "Verursacher">nul || goto :eof
vorweg den Batch gleich "abwürgen", wenn's nicht um den gesuchten User geht ...

Grüße
bastla
Member: Logan000
Logan000 Aug 10, 2011, updated at Oct 18, 2012 at 16:47:49 (UTC)
Goto Top
Moin Moin

Hmm.. ja schon aber genau daran scheitere ich da mein Kentnisse nicht besonders sind.
Ich konnte mich soweit belesen, aber ich schaff es nicht es so umzusetzen das es geht.

Da hillft nur eins: Noch mehr lesen. face-wink
Ich empfehle Batch for Runaways - Part I von meinem wortgewandtem Lieblingsmoderator.

So in etwa könnte das aussehen:
If %1 ==GesuchterUsername (goto SendMail) else (goto Ende)
:SendMail
Rem hier kommt dein bisheriger Code rein
Rem ....
:Ende

Gruß L.
Member: bastla
bastla Aug 10, 2011 at 13:08:58 (UTC)
Goto Top
@logan
Achtung - Leerzeichen sind in diesem Fall Gift; daher besser:
If /i "%~1" neq "GesuchterUsername" goto Ende  
:SendMail
Rem hier kommt dein bisheriger Code rein
Rem ....
:Ende
wobei ":Ende" nur Sinn macht, wenn danach noch etwas passiert - ansonsten gleich (wie unten gezeigt) "goto :eof" ...

Grüße
bastla
Member: samuelT
samuelT Aug 10, 2011 at 13:09:44 (UTC)
Goto Top
Hallo bastla,
vielen Dank, aber noch geht es nicht...

ich habe deinen Vorschlag so eingefügt, aber da kommt nichts... was mach ich falsch??


:Mail
rem send the email
C:\ftpscript\Bmail.exe -s xxx-t xxxx -f xx.de -h -a "Ein Download wurde beendet" -m C:\ftpscript\status.txt
:EXIT

exit
Member: bastla
bastla Aug 10, 2011 at 13:12:01 (UTC)
Goto Top
Hallo samuelT und willkommen im Forum!

Von ":Exit" stand bei mir aber nix ...

... wobei: Wenn Du den Namen ohnehin in einer (Parameter-) Variablen hast, brauchst Du "findstr" nicht zu bemühen - siehe oben Logans Vorschlag (und meine Anmerkung dazu).

Grüße
bastla
Member: samuelT
samuelT Aug 10, 2011 at 13:20:22 (UTC)
Goto Top
Hallo bastla, Logan,
@logan face-smile kloar, mehr lesen, deswegen ruf ich ja laut um Hilfe *gg*
Nee, aber scherz beiseite, muss mich da sicher mehr rein lesen.

Ich habe deinen Vorschlag getestet und es scheint zu funzen bastla.... haaa, ich freu mich gerade...!! .-)

Gewählt wurde :
If /i "%~1" neq "GesuchterUsername" goto Ende :SendMail

Auf alle Fälle ein ganz großes Danke an euch beide!!!!! Ihr habt mir echt super geholfen!!!!!!!

Bis dahin, wünsche euch einen schönen Tag,

Grüße Samuel
Member: bastla
bastla Aug 10, 2011 at 13:25:54 (UTC)
Goto Top
Hallo samuelT!

Schön, wenn's funktioniert ... face-smile

Noch ein Lesetipp (damit's besser aussieht; lässt sich auch im Nachhinein noch umsetzen face-wink): -Formatierung

Grüße
bastla