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

Mailing via blat aus verschiedenen Ordnern

Frage Entwicklung Batch & Shell

Mitglied: hoffi3d

hoffi3d (Level 1) - Jetzt verbinden

25.04.2014 um 07:54 Uhr, 852 Aufrufe, 3 Kommentare

Guten Morgen,

ich habe folgendes anliegen. Ich möchte ein Mailing via Blat.exe (http://www.blat.net/) erstellen.

Ausgangslage ist folgende, ich habe in einem Ordner eine .txt Datei für den Betreff, eine für die Empfänger und eine für die .bcc´s!
Dann möchte ich Unterordner anlegen die z.B. Verkauf, Controlling etc. heissen in diesen Liegen dann x Dateien die an den Empfängerkreis für eben diesen Ordner versandt werden!


Ordner Versand mit Betreff.txt, to_empfaenger.txt, bcc_empfaenger.txt
=> Unterordner Controlling mit x Dateien
=> Unterordner Verkauf mit x Dateien


Nun ist es so, das ich dieses Gerüst schon "starr" hinbekommen habe. Ich hätte es aber gerne flexibel also dass der Nutzer sich neue Unterordner anlegen kann und das System diese dann einfach ausliest! Natürlich muss der Nutzer auch Betreff/Empfänger und BCC ergänzen....!

Meine .bat sieht derzeit wie folgt aus(ich weiß sicher nicht optimal....)

Eingangs ziehe ich meine Variablen zu großen Teilen aus einer config.txt


01.
@Echo off 
02.
Mode con cols=150 lines=50 
03.
Set Beginn=%time% 
04.
set config=D:\CMD_BAT\versand\config.txt 
05.
 
06.
for /f "delims== tokens=1,2" %%i in ('findstr "blat_exe" %config%') do set blat=%%j 
07.
for /f "delims== tokens=1,2" %%i in ('findstr "mailserver" %config%') do set server=%%j 
08.
for /f "delims== tokens=1,2" %%i in ('findstr "absender" %config%') do set sender=%%j 
09.
for /f "delims== tokens=1,2" %%i in ('findstr "workdir" %config%') do set workdir=%%j 
10.
for /f "delims== tokens=1,2" %%i in ('findstr "absender" %config%') do set absender=%%j 
11.
for /f "delims== tokens=1,2" %%i in ('findstr "logdir" %config%') do set logdir=%%j 
12.
set logdir=%workdir%%logdir% 
13.
for /f "delims== tokens=1,2" %%i in ('findstr "mail_to_datei" %config%') do set mail_to_datei=%%j 
14.
set mail_to_datei=%workdir%%mail_to_datei% 
15.
for /f "delims== tokens=1,2" %%i in ('findstr "mail_bcc_datei" %config%') do set mail_bcc_datei=%%j 
16.
set mail_bcc_datei=%workdir%%mail_bcc_datei% 
17.
for /f "delims== tokens=1,2" %%i in ('findstr "temp_datei" %config%') do set temp=%%j 
18.
set temp=%workdir%%temp% 
19.
for /f "delims== tokens=1,2" %%i in ('findstr "mail_log_datei" %config%') do set mail_log_datei=%%j 
20.
set mail=%logdir%%date%%mail_log_datei% 
21.
for /f "delims== tokens=1,2" %%i in ('findstr "topicdatei" %config%') do set topicdatei=%%j 
22.
set topicdatei=%workdir%%topicdatei% 
23.
for /f "delims== tokens=1,2" %%i in ('findstr "ordnerdatei" %config%') do set ordnerdatei=%%j 
24.
set ordnerdatei=%workdir%%ordnerdatei% 
25.
for /f "delims== tokens=1,2" %%i in ('findstr "body" %config%') do set body=%%j 
26.
 
27.
set name1=Controlling 
28.
set name2=Verkauf 
29.
 
30.
 
31.
set ordner1=%workdir%%name1% 
32.
set ordner2=%workdir%%name2% 
33.
 
34.
 
35.
for /f "delims== tokens=1,2" %%i in ('findstr "%name1%" %mail_to_datei%') do set to1=%%j 
36.
for /f "delims== tokens=1,2" %%i in ('findstr "%name2%" %mail_to_datei%') do set to2=%%j 
37.
 
38.
for /f "delims== tokens=1,2" %%i in ('findstr "%name1%" %mail_bcc_datei%') do set bcc1=%%j 
39.
for /f "delims== tokens=1,2" %%i in ('findstr "%name2%" %mail_bcc_datei%') do set bcc2=%%j 
40.
 
41.
set /P tag_entladung=Bitte Auswertungstag fuer %name1% eingeben:  
42.
 
43.
set /P tag_tageskennzahlen=Bitte Auswertungstag fuer %name2% eingeben:  
44.
 
45.
set Versandordner=%ordner1% 
46.
set to=%to1% 
47.
set bcc=%bcc1% 
48.
set Topic=%Name1% 
49.
set anhang= 
50.
 
51.
 
52.
dir /b %versandordner% > %temp% 
53.
 
54.
 
55.
for /f %%x in (%temp%) do set anhang=!anhang!,%versandordner%\%%x  
56.
set anhang=%anhang:~1% 
57.
set anhang=%anhang: =% 
58.
 
59.
%blat% -body "%body%"   -server %server% -to %to% -bcc %bcc% -f %sender% -s "%topic%" -attach %Anhang% >> %mail% 
60.
 
61.
 
62.
set Versandordner=%ordner2% 
63.
set to=%to2% 
64.
set bcc=%bcc2% 
65.
set Topic=%Name2% - %tag_entladung% 
66.
set anhang= 
67.
 
68.
dir /b %versandordner% > %temp% 
69.
 
70.
 
71.
for /f %%x in (%temp%) do set anhang=!anhang!,%versandordner%\%%x  
72.
set anhang=%anhang:~1% 
73.
set anhang=%anhang: =% 
74.
 
75.
%blat% -body "%body%"   -server %server% -to %to% -bcc %bcc% -f %sender% -s "%topic%" -attach %Anhang% >> %mail%
Vielen Dank vorrab!
Mitglied: bastla
25.04.2014 um 10:55 Uhr
Hallo hoffi3d!

Ganz allgemein: Um alle Unterordner eines Ordners durchzugehen kannst Du
01.
for /d %%u in (*) do ( 
02.
    echo Unterordner: %%u 
03.
    dir /s/b "%%u" 
04.
)
verwenden.

Wenn es für Dich einfacher ist, kannst Du auch in jeden dieser Ordner hineinwechseln, sodass Du dann keine Pfade zu berücksichtigen hast:
01.
for /d %%u in (*) do ( 
02.
    echo Unterordner: %%u 
03.
    pushd "%%u" 
04.
    dir /b 
05.
    popd 
06.
)
Ansonsten noch 2 Hinweise:
  • Das Verwenden von %temp% für einen Dateinamen ist suboptimal, da Du so die entsprechende Systemvariable überschreibst.
  • Jetzt die gute Nachricht: Wenn Du keinen anderen Grund für die Verwendung einer solchen Datei hast, als dort die Dateinamen der Anhänge zwischenzuspeichern, kannst Du sie gleich einsparen - es genügt in diesem Fall
for /f "delims=" %%x in ('dir /b "%versandordner%"') do set "anhang=!anhang!,%versandordner%\%%x"
Grüße
bastla
Bitte warten ..
Mitglied: hoffi3d
25.04.2014 um 12:35 Uhr
Hallo Bastla,

die Unterordner auslesen lassen bekomme ich inzwischen hin(wenn auch etwas anders).
Nur hapert es an der "Schleife" die mir die Empfänger, die Topics, die BCCs und die Anhänge zusammenschreibt und auch mail, ich habe ka wie ich diese zusammensetze:

Um die Unterordner mit Namen auslesen zu lassen:
01.
dir /ad /b %workdir% > %ordnerdatei%
Müsste ja jetzt für jeden Unterordner die Dateien auslesen und nach den zugehörigen Empfängern + BCC´s suchen!

Nur wie am besten?
Bitte warten ..
Mitglied: bastla
25.04.2014, aktualisiert um 16:10 Uhr
Hallo hoffi3d!
Müsste ja jetzt für jeden Unterordner die Dateien auslesen und nach den zugehörigen Empfängern + BCC´s suchen!
So what? Was für einen Ordner geht, geht auch für viele - und wie schon oben angeführt, kannst Du ja mit
01.
for /d %%u in (*) do ( 
02.
    pushd "%%u" 
03.
    echo Jetzt ist der Unterordner "!cd!" aktuell und alle Dateien sind ohne Pfadangabe erreichbar 
04.
    popd 
05.
)
vorübergehend in jeden der Unterordner wechseln und die dort liegenden Dateien verarbeiten ...

GGf verwendest Du eben für jeden Unterordner eine eigene "config.txt".

Zur Konfigurationsdatei auch noch eine Anmerkung: Wenn Du Variablen sinnvoll benennst, also etwa
%Mail_blat%
%Mail_sender%
%Mail_workdir%
kannst Du eine Konfigurationsdatei ganz einfach mit
set Mail_>config.txt
erstellen und die Variablen wieder mit
for /f "delims=" %%i in (config.txt) do set "%%i"
einlesen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Hosting & Housing
Weg von einem Anbieter Webhosting und Mailing
Frage von Ramsys1991Hosting & Housing9 Kommentare

Moin Leute, ich habe meine Unternehmens Seite aktuell bei einem Anbieter gehostet mit dem ich nicht zufrieden bin. Nun ...

Batch & Shell
Eine Batch zum Sortieren verschiedener Dateien in Ordner
gelöst Frage von JaglagBatch & Shell16 Kommentare

Hallo, da ich leider mit Batch und shell nicht so erfahren bin hoffe das ein findiger User hier weiterhelfen ...

Batch & Shell
Compress Archieve verschiedener Ordner mit PowerShell
gelöst Frage von FRANHEBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem und wäre wirklich dankbar für eure Hilfe:-) Vor mir liegt eine Ordnerstruktur, die ...

Batch & Shell
Wie kann ich eine Mail über Blat versenden mit Batch
gelöst Frage von Dreamkiller112Batch & Shell8 Kommentare

Hallo, Hey ich benötige drigend Hilfe ich habe das Problem ich möchte eine Batch-Datei erstellen mit der ich eine ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 6 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 2 TagenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...