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

Dateiinhalt von Subject.txt nach einem Filter prüfen und danach die Datei Subject.txt und Mailinhalt.txt löschen

Frage Entwicklung Batch & Shell

Mitglied: wtaler

wtaler (Level 1) - Jetzt verbinden

19.07.2009, aktualisiert 20.07.2009, 5853 Aufrufe, 7 Kommentare

Eigentlich programmiere ich unter Sinix und und bin mit Batchdateien unter Windows Vista noch nicht so erfahren. Ich freue mich auf eine Hilfestellung von Euch.

Guten Tag,

ich habe die Batchdatei

if exist mailinhalt.txt goto ende'
echo Am %date% um %time:~0,8% Fehlerausl. %3 >> c:\emailalarm\mailinhalt.txt
echo %3 >> c:\emailalarm\subject.txt
ping -n 15 localhost >nul
[Hier erfolgt der Versand der Email mit Parametern und blat.exe, der auch funktioniert]
del c:\emailalarm\mailinhalt.txt
del c:\emailalarm\subject.txt
del c:\emailalarm\versandlog.txt
wait 60
end

(Die Variable %3 ist ein Infotext der Maschine, der Ping -n soll doppelte Meldung bzw. Folgemeldungen nur in den Mailinhalt schreiben.) geschrieben, die die Daten einer Fehlerauslösung über das Programm blat.exe zuverlässig versendet.

Aufgrund vieler Infomeldungen, die mit RD: oder AD: beginnen und nur Informationen und keine Fehler übertragen, möchte ich diese Infomeldungen nicht als Fehlermeldungen per Mail versenden. Nun meine Frage, wie muss die Batchdatei erweitert werden, damit diese Mails nicht versendet werden. Vielen Dank.

Gruß

Christoph
Mitglied: rubberman
20.07.2009 um 02:25 Uhr
Ein paar Dinge vorab:
- Den Befehl end gibt es nicht. ist normalerweise auch nicht nötig, da der Batch nach Abarbeitung der Befehlszeilen automatisch beendet wird. Im Zweifelsfall kann aber der Befehl exit angehängt werden.
-wait steht standardmäßig auch nicht zur Verfügung, hier bitte ebenfalls ping nutzen
-Für "goto ende" müsste eine Sprungmarke :ende existieren. Hier kann man "goto :eof" nutzen. Das ist eine imaginäre Sprungmarke, die für "End Of File" steht.

Nun zu deinem Problem. Mein Lösungsvorschlag ist, innerhalb einer FOR-Schleife die Echo-Ausgabe des Parameters %3 an den Findstr-Befehl zu übergeben. Hier wird am Zeilenanfang nach RD: und AD: gesucht. Wenn diese Zeichenfolgen gefunden wurden, wird der Batch beendet.
01.
@echo off &setlocal 
02.
if exist mailinhalt.txt goto :eof 
03.
for /f "tokens=*" %%i in ('echo %~3^|findstr /b "RD: AD:"') do goto :eof 
04.
echo Am %date% um %time:~0,8% Fehlerausl. %3>>c:\emailalarm\mailinhalt.txt 
05.
echo %3>>c:\emailalarm\subject.txt 
06.
ping -n 15 localhost>nul 
07.
:: [Hier erfolgt der Versand der Email mit Parametern und blat.exe, der auch funktioniert] 
08.
del c:\emailalarm\mailinhalt.txt 
09.
del c:\emailalarm\subject.txt 
10.
del c:\emailalarm\versandlog.txt 
11.
ping -n 61 localhost>nul
Bitte warten ..
Mitglied: bastla
20.07.2009 um 07:53 Uhr
@rubberman
Deinen Erklärungen vorweg kann ich nur zustimmen ...

... allerdings frage ich mich (und jetzt Dich ), wozu der Umweg über die "for"-Schleife dienen soll - eine Zeile
echo %~3|findstr /b "RD: AD:">nul && goto :eof
sollte eigentlich genügen.

Grüße
bastla
Bitte warten ..
Mitglied: wtaler
20.07.2009 um 10:02 Uhr
Danke für die schnelle Hilfe. Nun würde ich gerne noch wissen, wieviele Filter für den Ausschluß möglich sind oder ob es besser eine neue Datei werden sollte. Falls eine Datei optimaler ist, wie wird die dann in den findstr Befehl eingebaut?

Gruß

Christoph
Bitte warten ..
Mitglied: bastla
20.07.2009 um 10:14 Uhr
Hallo wtaler!

Übersichtlicher wird's mit einer eigenen Datei (Verwendung: "/G:Datei" - siehe "findstr /?"), möglich sein sollten aber noch eine Reihe weiterer "Filterbegriffe" (solange sie aus einzelnen "Wörtern" bestehen) - welche Längenbegrenzung es dafür bei "findstr" gibt, habe ich noch nie gelesen / getetestet (vielleicht magst Du es ja versuchen ) ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
20.07.2009 um 10:29 Uhr
@ bastla
Gegenfrage. Warum einfach, wenns auch umständlich geht
Nein. Man fährt halt manchmal seine eingefahrene Schiene. Und was solls ... beides funktioniert.
Bitte warten ..
Mitglied: wtaler
20.07.2009 um 10:36 Uhr
Danke für Eue Hinweise und die ergänzenden Worte. Ich werde mich nun mal mit der Datei auseinandersetzen und weiter testen. Danke und ansonsten schließe ich den Beitrag als gelöst ab.

Gruß

Christoph
Bitte warten ..
Mitglied: bastla
20.07.2009 um 10:42 Uhr
@rubberman
beides funktioniert.
... worauf es ja schließlich ankommt.

Da ich immer neugierig bin und gerne dazulerne, hatte ich mich nur gefragt, was die Schleife bringen sollte - und auf Anhieb keinen Vorteil entdeckt ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Perl
gelöst Mit Perl aus einer Datei teilidentische Zeilen löschen (5)

Frage von Jeduja zum Thema Perl ...

Webentwicklung
HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...