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, 5888 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - Datei prüfen ob vorhanden, dann löschen (9)

Frage von Bugger zum Thema Batch & Shell ...

Batch & Shell
gelöst EDI Dateien auf Inhalt prüfen und verschieben (6)

Frage von ThomasKern zum Thema Batch & Shell ...

Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Windows Server
Ereignisanzeige - Nach verschobenen Dateien filtern (1)

Frage von Stecken zum Thema Windows Server ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Microsoft Office
Outlook 2016 in Ordneransicht starten - GPO (9)

Frage von D-Line zum Thema Microsoft Office ...