Gut,
dann versuche ich mal zu erklären um was es geht. Mein Vorhaben dient der Erleichterung der Mitarbeiter bei uns auf der Arbeit. Die übliche Aufgabe für den Mitarbeiten bei diesem Prozess ist es einen Ordner erstellen, mit den Kundendaten im Namen und im Ordner dazu eine Excel Datei die den gleichen Namen wie der Ordner hat. Die Excel Datei selber ist eine Musterdatei die wir gestellt kriegen und dann dementsprechend ausfüllen müssen.
Wenn diese Excel Datei ausgefüllt ist, muss der Mitarbeiter diese Datei per Mail an die jeweils zuständige Stelle schicken.
Ich habe jetzt also 2 neue Einträge im Kontextmenu gemacht, der erste erstellt den Ordner und kopiert die Excel Tabelle und benennt sie um. Das alles in dem man vorher bei Inputbox die jeweiligen Daten eingibt.
Wenn der Mitarbeiter dann fertig ist mit der Excel Datei, klickt er auf den Ordner und im Kontextmenu gibt es jetzt den Punkt das Ganze per Mail zu versenden. Dann wird das in eine Zip gepackt, es öffnet sich Thunderbird per Kommandozeile mit den vorgefertigten Empfänger, Sender, Betreff, Text und logischerweise auch Anhang.
Jetzt zu meinen Problemen.
Mein erstes Problem war das WinRar die Ordnerstruktur mit komprimiert hat und diese Informationen enthielt die nicht für die Empfänger gedacht sind.
Zweites Problem war dass ich durch den Aufruf durch das Kontextmenu durch „versenden.bat %1“ Ich den ganzen Pfad als Variable hatte und diese Variable sollte als Betreff in der Mail benutzt werden, aber nur der Namen vom erstellten Ordner also wieder „unterordner2“ als Betreff. Dies konnte ich jetzt auch schon lösen.
Jetzt mein neues Problem, wenn ich in der 2. Batch die die HTML (dient als Text/Body für die E-Mail) generiert, mit den Variablen „fütter“ gibt es eine Hürde. Sobald ein Umlaut (ü, ä, ö) mit in den Variablen ist, meckert Thunderbird rum dass es nicht die HTML nutzen kann.
Meine Idee wäre in der 1. Batch beim erstellen des Ordners, zu überprüfen ob ein Umlaut dabei ist und wenn ja entweder darauf hinweisen und eine neue Eingabe fordern oder das ganze Automatisch in ue, ae… wandeln.
Das soll es erstmal gewesen sein, ist genug Text ich weiß, aber eine Idee hätte ich noch die aber glaube fast nicht lösbar ist.
1. Batch zum Ordner erstellen
Code:
@echo off
title Ordner erstellen
REM color 38
REM mode con lines=2 cols=15
set In=%temp%\GetInput.vbs
>%In% echo Set args=WScript.Arguments:WScript.Echo InputBox(args(0), args(1), args(2))
set "Daten1=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte die Daten1 eingeben " "Daten1" ""') do set "Daten1=%%i"
set "Daten2=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte die Daten2 eingeben " "Daten2" ""') do set "Daten2=%%i"
set "Daten3=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte die Daten3 eingeben " "Daten3" ""') do set "Daten3=%%i"
set "Daten4=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte die Daten4 eingeben " "Daten4" ""') do set "Daten4=%%i"
set "Daten5=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte die Daten5 eingeben " "Daten5" ""') do set "Daten5=%%i"
set "Daten6=" & for /f "delims=" %%i in ('cscript //nologo %In% "Bitte die Daten6 eingeben " "Daten6" ""') do set "Daten6=%%i"
md "%DATEN1%_%DATEN2%_%DATEN3%_%DATEN4%_%NDATEN5%_%DATEN6%"
xcopy Z:\Vorlage\Muster.xlsx "%DATEN1%_%DATEN2%_%DATEN3%_%DATEN4%_%NDATEN5%_%DATEN6%"
cd "%DATEN1%_%DATEN2%_%DATEN3%_%DATEN4%_%NDATEN5%_%DATEN6%"
rename Muster.xlsx %DATEN1%_%DATEN2%_%DATEN3%_%DATEN4%_%NDATEN5%_%DATEN6%.xlsx
echo msgbox"Ordner erstellt",vbInformation , "Ordner erstellt"> %temp%\msg.vbs
%Temp%\msg.vbs
erase %temp%\msg.vbs
2. Batch zum versenden
Code:
@echo off
REM color 38
REM mode con lines=2 cols=15
IF "%1"=="" GOTO HELP
IF EXIST %1 GOTO WEITER
echo Ordner %1 existiert nicht.
GOTO END
:WEITER
rar a -ep "%1.zip" %1\*.*
set umlegen=%1
for /f "delims=" %%i in ("%umlegen%.") do set "betreff=%%~nxi"
:HELP
for /F "delims=_ tokens=6" %%i in ("%betreff%") do set betreff2=%%i
for /F "delims=_ tokens=5" %%i in ("%betreff%") do set name=%%i
for /F "delims=_ tokens=1" %%i in ("%betreff%") do set Daten1=%%i
REM Empfänger1
if %Daten1%==1233 GOTO Empf1
if %Daten1%==1244 GOTO Empf1
if %Daten1%==1255 GOTO Empf1
if %Daten1%==12333 GOTO Empf1
if %Daten1%==12444 GOTO Empf1
if %Daten1%==12555 GOTO Empf1
REM Empfänger2
if %Daten1%==2233 GOTO Empf2
if %Daten1%==2244 GOTO Empf2
if %Daten1%==2255 GOTO Empf2
if %Daten1%==22333 GOTO Empf2
if %Daten1%==22444 GOTO Empf2
if %Daten1%==22555 GOTO Empf2
:Empf1
REM HTML Datei erstellen
echo "<html>" > E:\mail\empf1.html
echo "<head>" >> E:\mail\empf1.html
echo "<meta http-equiv="content-type" content="text/html; charset=utf-8">" >> E:\mail\empf1.html
echo "<title>Auftrag %betreff2% , %kunde% </title>" >> E:\mail\empf1.html
echo "</head>" >> E:\mail\empf1.html
echo "<body text="#000000" bgcolor="#FFFFFF">" >> E:\mail\empf1.html
echo "<p>Guten Tag Herr R2D2,</p>" >> E:\mail\empf1.html
echo "<p>im Anhang befindet sich der Ordner fuer den Kunden %name% .</p>" >> E:\mail\empf1.html
echo "MfG<br>" >> E:\mail\empf1.html
echo "Borstel86<br>" >> E:\mail\empf1.html
echo "<br>" >> E:\mail\empf1.html
echo "</body>" >> E:\mail\empf1.html
echo "</html>" >> E:\mail\empf1.html
REM Die Anfuehrungszeichen aus der HTML nehmen
cscript //nologo E:\mail\zeichenentfernen.vbs "E:\mail\empf1.html" "E:\mail\empf1-neu.html"
GOTO SENDEN1
:SENDEN1
echo msgbox"Akte bereit für den E-Mailversand",vbInformation , "Akte versenden"> %temp%\msg.vbs
%Temp%\msg.vbs s
erase %temp%\msg.vbs
"C:\Program Files\Mozilla Thunderbird\thunderbird.exe" -compose "to=R2D2@empf1.de,cc=mitarbeiter2@empf1.de,from=ich@beimir.com,subject=Akte %betreff2% Kunde %kunde%,message=E:\mail\empf1-neu.html,attachment='file:///%1.zip'"
GOTO END
:Empf2
REM HTML Datei erstellen
echo "<html>" > E:\mail\empf2.html
echo "<head>" >> E:\mail\empf2.html
echo "<meta http-equiv="content-type" content="text/html; charset=utf-8">" >> E:\mail\empf2.html
echo "<title>Auftrag %betreff2% , %kunde% </title>" >> E:\mail\empf2.html
echo "</head>" >> E:\mail\empf2.html
echo "<body text="#000000" bgcolor="#FFFFFF">" >> E:\mail\empf2.html
echo "<p>Hallo C3PO,</p>" >> E:\mail\empf2.html
echo "<p>im Anhang befindet sich der Ordner fuer den Kunden %name% .</p>" >> E:\mail\empf2.html
echo "MfG<br>" >> E:\mail\empf2.html
echo "Borstel86<br>" >> E:\mail\empf2.html
echo "<br>" >> E:\mail\empf2.html
echo "</body>" >> E:\mail\empf2.html
echo "</html>" >> E:\mail\empf2.html
REM Die Anfuehrungszeichen aus der HTML nehmen
cscript //nologo E:\mail\zeichenentfernen.vbs "E:\mail\empf2.html" "E:\mail\empf2-neu.html"
GOTO SENDEN2
:SENDEN2
echo msgbox"Akte bereit für den E-Mailversand",vbInformation , "Akte versenden"> %temp%\msg.vbs
%Temp%\msg.vbs s
erase %temp%\msg.vbs
"C:\Program Files\Mozilla Thunderbird\thunderbird.exe" -compose "to=C3PO@empf2.de,from=ich@beimir.com,subject=Akte %betreff2% Kunde %kunde%,message=E:\mail\empf2-neu.html,attachment='file:///%1.zip'"
GOTO END
:END
timeout /t 20
del %1.zip
del E:\mail\empf1.html
del E:\mail\empf1-neu.html
del E:\mail\empf2.html
del E:\mail\empf2-neu.html
Ich weiß ist alles sehr laienhaft, aber irgendwann muss man ja mal anfagen.