Suchen u. Ersetzen als Batch mit Variabelen wer kann helfen...
Hallo Zusammen,
ich würde gerne eine Batch bauen wollen, die folgendes bewirkt. Sorry dass ich das leider nicht in der richtigen Syntax ausrücken kann, daher hier nur der gewünschte Ablauf:
Voraussetzung ist, dass die Datei Signatur im Ordner liegt, aber das sollte kein Thema sein mit xcopy!
Die Suchen u. Ersetzen bat sollte folgendes realisieren:
1. Frage den User nach Vorname und packe das in eine Variable bzw. Zwischenspeicher
2. Dann kommen noch ca. 10 Frage Ort, PLZ, Str. etc.... alle in Variable bzw. Zwischenspeicher
3. Die Batch soll dann nach der Fragebeantwortung die Daten aus den Variable bzw. Zwischenspeicher nehmen u. in der Signatur.html die Vorgaben, die so aussehen suchen und erstezen
4. Toll wäre es jetzt noch, wenn man Outlook sagen könnte nehme diese Signatur für Senden und beantworten. Aber das ist glaube ich zuviel des Guten
Die Signatur sieht ca. so aus (Ist nur ein Auszug):
<td><p align="left"><basefont face=""><font face="Tahoma"><font size="-2">Strasse-u-Hs-Nr</font></td>
<td><p align="left"><basefont face=""><font face="Tahoma"><font size="-2">Geschäftsführer: Vorname-Nachname</font></td>
Hat da jemand eine Lösung für mich?
ich würde gerne eine Batch bauen wollen, die folgendes bewirkt. Sorry dass ich das leider nicht in der richtigen Syntax ausrücken kann, daher hier nur der gewünschte Ablauf:
Voraussetzung ist, dass die Datei Signatur im Ordner liegt, aber das sollte kein Thema sein mit xcopy!
Die Suchen u. Ersetzen bat sollte folgendes realisieren:
1. Frage den User nach Vorname und packe das in eine Variable bzw. Zwischenspeicher
2. Dann kommen noch ca. 10 Frage Ort, PLZ, Str. etc.... alle in Variable bzw. Zwischenspeicher
3. Die Batch soll dann nach der Fragebeantwortung die Daten aus den Variable bzw. Zwischenspeicher nehmen u. in der Signatur.html die Vorgaben, die so aussehen suchen und erstezen
4. Toll wäre es jetzt noch, wenn man Outlook sagen könnte nehme diese Signatur für Senden und beantworten. Aber das ist glaube ich zuviel des Guten
Die Signatur sieht ca. so aus (Ist nur ein Auszug):
<td><p align="left"><basefont face=""><font face="Tahoma"><font size="-2">Strasse-u-Hs-Nr</font></td>
<td><p align="left"><basefont face=""><font face="Tahoma"><font size="-2">Geschäftsführer: Vorname-Nachname</font></td>
Hat da jemand eine Lösung für mich?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201652
Url: https://administrator.de/forum/suchen-u-ersetzen-als-batch-mit-variabelen-wer-kann-helfen-201652.html
Ausgedruckt am: 13.04.2025 um 05:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
warum so kompliziert? Du hast Doch sicherlich ein Active-Directory, richtig?
Falls ja, schau Dir das mal an: http://www.zerbit.de/projekte/outlooksignature.aspx
Falls nein, schaff Dir eins an...das macht das Leben leichter.
Gruß
Marcus
warum so kompliziert? Du hast Doch sicherlich ein Active-Directory, richtig?
Falls ja, schau Dir das mal an: http://www.zerbit.de/projekte/outlooksignature.aspx
Falls nein, schaff Dir eins an...das macht das Leben leichter.
Gruß
Marcus
Falls es doch in "batch" geschehen soll, wirds ohne externe Hilfe recht unschön.
Die Variablen der Reihe nach abfragen ist klar,
echo. "Name!"
SET /P Name=Name eingeben:
cls
echo. "Nachname..."
Für das Suchen&Ersetzen würde ich dann auf das Linux-Tool sed setzen.
Dazu erstellt du dir zuerst eine templateSig.html, wo du dann entsprechende Platzhalterwörter verwendest. (Vorname, Nachname, PLZ etc.)
Sed gibt es dann hier: http://07q.de/sed (recht weit unten ist ein Windows-Setup (http://07q.de/sedddl)
Nun noch korrekt ausführen. Der sed-Aufruf dürfte dann in etwa so aussehen:
Der Pfad zur sed.exe ist klar. Wenn woanders installiert, entsprechend anpassen. Das -e ist notwendig, weil mehrere Ersetzungen durchgeführt werden sollen. Die eigentliche Ersetzungsregel ist dann halt:
"s#suchString#ersetzString#" Nimmt man für den ersetzString eine Variable, wie %vorname%, so wird die dann dort verwendet. Sollte in deiner Signatur das #-Zeichen notwendig sein, kannst nach dem s auch ein anderes Trennzeichen angeben. "s?aaaaa?bbbb?". Die "" sind da, damit es keine Probleme mit Leerzeichen gibt.
Da sed aus der Linux-Welt kommt, wünscht es auch dementsprechende Pfadangaben. Dabei entspricht /cygdrive/ sozusagen dem Arbeitsplatz und die nächsten Ordner werden durch / (und nicht \ abgetrennt).
Sollte in dem Pfad ein Leerzeichen sein, entweder Pfad in "" setzen oder das Leerzeichen "escapen". z.B.: /cygdrive/c/Program\ Files\ (x86)/restlicher\ Pfad/.... (wobei es bei mir auch mit Win-Syntax funktionierte)
Mit > wird das Ergebnis dann an eine Datei umgeleitet, die dann wieder mittels normaler Windows-Pfadangabe angegeben werden muss.
Die Variablen der Reihe nach abfragen ist klar,
echo. "Name!"
SET /P Name=Name eingeben:
cls
echo. "Nachname..."
Für das Suchen&Ersetzen würde ich dann auf das Linux-Tool sed setzen.
Dazu erstellt du dir zuerst eine templateSig.html, wo du dann entsprechende Platzhalterwörter verwendest. (Vorname, Nachname, PLZ etc.)
Sed gibt es dann hier: http://07q.de/sed (recht weit unten ist ein Windows-Setup (http://07q.de/sedddl)
Nun noch korrekt ausführen. Der sed-Aufruf dürfte dann in etwa so aussehen:
"C:\Program Files (x86)\GnuWin32\bin\sed.exe" -e "s#Vorname#%vorname%#" -e "s#Nachname#%nachname%#" -e "s#derNächstePlatzhalter#%dieNächsteVariable%#" "/cygdrive/c/Pfad/zu/dem/Template.html" > "c:\Pfad\zum\Ziel\signature.html"
Der Pfad zur sed.exe ist klar. Wenn woanders installiert, entsprechend anpassen. Das -e ist notwendig, weil mehrere Ersetzungen durchgeführt werden sollen. Die eigentliche Ersetzungsregel ist dann halt:
"s#suchString#ersetzString#" Nimmt man für den ersetzString eine Variable, wie %vorname%, so wird die dann dort verwendet. Sollte in deiner Signatur das #-Zeichen notwendig sein, kannst nach dem s auch ein anderes Trennzeichen angeben. "s?aaaaa?bbbb?". Die "" sind da, damit es keine Probleme mit Leerzeichen gibt.
Da sed aus der Linux-Welt kommt, wünscht es auch dementsprechende Pfadangaben. Dabei entspricht /cygdrive/ sozusagen dem Arbeitsplatz und die nächsten Ordner werden durch / (und nicht \ abgetrennt).
Sollte in dem Pfad ein Leerzeichen sein, entweder Pfad in "" setzen oder das Leerzeichen "escapen". z.B.: /cygdrive/c/Program\ Files\ (x86)/restlicher\ Pfad/.... (wobei es bei mir auch mit Win-Syntax funktionierte)
Mit > wird das Ergebnis dann an eine Datei umgeleitet, die dann wieder mittels normaler Windows-Pfadangabe angegeben werden muss.