Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Batch & Shell

GELÖST

Batch: Prüfung auf erfolgreich ausgeführten Befehl

Mitglied: mylurid

mylurid (Level 1) - Jetzt verbinden

30.10.2014 um 08:33 Uhr, 843 Aufrufe, 2 Kommentare

Guten Morgen zusammen!

Habe folgedes Problem.. es existiert ein Skript, welches einen Ordner auf Dateien mit Größe 0 Byte prüft, ein Log erstellt und dann eine Mail verschickt.
Das klappt soweit auch ganz gut.
Es sollen auch noch die Dateien, die größer als 0 Byte sind an eine Mail angehängt und versendet werden. Auch das klappt.

Mein Problem besteht darin, dass er immer - also egal ob eine Datei mit 0 Byte gefunden wurde oder nicht - eine Mail verschickt, das einer 0 Byte Datei existieren würden.

ECHO off 
chcp 28591 
Set "Verzeichnis=D:\xy\z\" 
@for /R %Verzeichnis% %%i in (*.*) do @if %%~zi==0 if /i %%~dpi==%Verzeichnis% echo %date% %time:~0,8% - del "%%i" >> delete.txt 
@for /R %Verzeichnis% %%i in (*.*) do @if %%~zi==0 if /i %%~dpi==%Verzeichnis% del "%%i" && GOTO BLAT-AUFRUF2 
if exist "%Verzeichnis%" dir /b /A:-d "%Verzeichnis%">nul 2>nul || GOTO ENDE 
if exist "%Verzeichnis%" dir /b /A:-d "%Verzeichnis%">nul 2>nul && GOTO BLAT-Aufruf 
 
:BLAT-AUFRUF 
blat blat -to xx@yy.intern 
 
:BLAT-AUFRUF2 
blat -to xx@yy.intern 
 
:ENDE
Wie bekomme ich es hin, dass die Mail für 0 Byte Dateien nur dann verschickt wird, wenn auch wirklich eine gefunden wurde?
Eine IF Abfrage ob das Log existiert wäre eine theoretische Möglichkeit - habe es in der Praxis aber nicht umgesetzt bekommen.

Kann mir jemand helfen?

Gruß,
mylurid
Mitglied: bastla
30.10.2014 um 16:12 Uhr
Hallo mylurid!

Wenn tatsächlich 2 verschiedene Mails gesendet werden sollen, würde ich das schematisch (und ungetestet) etwa so versuchen:
01.
ECHO off & setlocal 
02.
 
03.
chcp 28591  
04.
 
05.
Set "Verzeichnis=D:\xy\z\" 
06.
Set "Log_Delete=%temp%\delete.txt" 
07.
Set "Log_Files=%temp%\files.txt" 
08.
 
09.
del "%Log_Delete%" 2>nul 
10.
del "%Log_Files%" 2>nul 
11.
 
12.
pushd "%Verzeichnis%" || goto :eof 
13.
 
14.
@for /F "delims=" %%i in ('dir /b/a-d 2^>nul') do @if %%~zi==0 @( 
15.
    echo %date% %time:~0,8% - del "%%i">>"%Log_Delete%" 
16.
    del "%%i" 
17.
18.
 
19.
dir /b/a-d>"%Log_Files%" 2>nul 
20.
 
21.
if exist "%Log_Files%" echo Sende Mail mit Dateien grosser als 0 Byte  
22.
if exist "%Log_Delete%" echo Sende Mail mit geloeschten Dateien 
23.
 
24.
popd
Anstelle der echo in den letzen beiden Zeilen dann natürlich der entsprechende "blat"-Aufruf (mit den Attachments %Log_Files% bzw %Log_Delete%") ...

Grüße
bastla
Bitte warten ..
Mitglied: mylurid
03.11.2014 um 17:22 Uhr
Ich hatte es bereits selbst gelöst..
Mein Problem war (habe nicht all zu oft mit Batches zu tun), dass ich nicht daran gedacht habe, dass alles sequenziell durchlaufen wird.
Daher ist er nach dem GOTO Befehl trotzdem nochmal zum Versand der Failure Mail gesprungen.

Hatte im Kopf, dass sich die Sprungmarken wir Funktionen handhaben und nur bei Bedarf angesprochen werden..

Gruß,
mylurid
Bitte warten ..
Ähnliche Inhalte
C und C++
Funktion wird trotz Prüfung auf ungleich NULL ausgeführt
Frage von Power-PolerC und C++5 Kommentare

Hallo Habe da ein kleines großes Problem, bei dem ich jetzt komplet auf dem Schlauch stehe wo der fehler ...

Batch & Shell
Dateinamen einer ausgeführten Batch verändern
Frage von DD-GamerBatch & Shell5 Kommentare

Hallo, ich möchte den Dateinamen der auszuführenden .bat um eins erhöhen nachdem ich sie ausgeführt habe. Das würde dann ...

Batch & Shell
Batch Datei wird per Aufgabenplanung nicht ausgeführt
Frage von CorraggiounoBatch & Shell7 Kommentare

Hi, ich hoffe ihr könnt mir weiterhelfen. Folgende Konfiguration habe ich vorgenommen um ein batch-script auszuführen: Unter Programm/Skript habe ...

Windows Installation
CMD-Batch Programmstart Befehle
Frage von timsen96Windows Installation1 Kommentar

Schönen guten Tag zusammen, ich möchte gerne über eine cmd oder batch datei ein Programm oder Installation öffnen und ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 2 StundenRouter & Routing

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 9 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 14 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...