Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

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

Frage Entwicklung Batch & Shell

Mitglied: samuelT

samuelT (Level 1) - Jetzt verbinden

10.08.2011, aktualisiert 18.10.2012, 3922 Aufrufe, 9 Kommentare

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
Mitglied: Logan000
10.08.2011 um 14:31 Uhr
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.
Bitte warten ..
Mitglied: samuelT
10.08.2011 um 14:42 Uhr
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

Gruß Samuel
Bitte warten ..
Mitglied: bastla
10.08.2011 um 14:48 Uhr
... 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
Bitte warten ..
Mitglied: Logan000
10.08.2011, aktualisiert 18.10.2012
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.
Ich empfehle Batch for Runaways - Part I von meinem wortgewandtem Lieblingsmoderator.

So in etwa könnte das aussehen:
01.
If %1 ==GesuchterUsername (goto SendMail) else (goto Ende) 
02.
:SendMail 
03.
Rem hier kommt dein bisheriger Code rein 
04.
Rem .... 
05.
:Ende
Gruß L.
Bitte warten ..
Mitglied: bastla
10.08.2011 um 15:08 Uhr
@Logan
Achtung - Leerzeichen sind in diesem Fall Gift; daher besser:
01.
If /i "%~1" neq "GesuchterUsername" goto Ende 
02.
:SendMail 
03.
Rem hier kommt dein bisheriger Code rein 
04.
Rem .... 
05.
:Ende
wobei ":Ende" nur Sinn macht, wenn danach noch etwas passiert - ansonsten gleich (wie unten gezeigt) "goto :eof" ...

Grüße
bastla
Bitte warten ..
Mitglied: samuelT
10.08.2011 um 15:09 Uhr
Hallo bastla,
vielen Dank, aber noch geht es nicht...

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

findstr /b "von:" status.txt|findstr /i "ftpuser" >nul || goto :Exit

: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
Bitte warten ..
Mitglied: bastla
10.08.2011 um 15:12 Uhr
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
Bitte warten ..
Mitglied: samuelT
10.08.2011 um 15:20 Uhr
Hallo bastla, Logan,
@Logan 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
Bitte warten ..
Mitglied: bastla
10.08.2011 um 15:25 Uhr
Hallo samuelT!

Schön, wenn's funktioniert ...

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

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...