torben.dj
Goto Top

Mailsserver für Thunderbird ändern

Veränderung der Mailservereinträge in der "prefs.js" mittels Skript

Hallo zusammen,
ich bin neu in diesem Forum und hoffe, dass Ihr mir helfen könnt.
Wir haben in unserer Firma einen neuen Mailserver bekommen.
In der kommenden Woche sollen alle Anwender (ca 500) vom alten Server auf den neuen geschwenkt werden.
Der Großteil der Anwender nutzt Thunderbird unter Windows XP als Mailprogramm.
Nun mein Anliegen:
Ich möchte gerne ein Skript erstellen, welches in dem jeweiligen Thunderbirdprofil des Anwenders
nach allen Einträgen des alten Mailservers sucht und diese durch den Eintrag des neuen Mailservers ersetzt. (funktioniert über den Editor mit Suchen und Ersetzen wunderbar)
Leider bin ich, was Programmiersprachen angeht, nicht gerade die Leuchte, könnte mir aber vorstellen, dass es mit eurem KnowHow möglich ist.
Es handelt sich also im die Datei "prefs.js" im Thunderbird-Profil des Anwenders (in der Regel liegt diese unter %APPDATA%\Thunderbird\Profiles\xxxxxxxx.default\prefs.js)
bei diesem Pfad stehe ich vor dem Problem, dass die Bezeichnung "xxxxxxxx.default" bei jedem Anwender variabel ist. Somit also nicht ohne weiteres aufrufbar ist.
Allerdings könnte die Pfadangabe aus der "profiles.ini" ausgelesen werden, welche unter %APPDATA%\Thunderbird liegt.

Theoretisch stelle ich mir das so vor:
der Anwender soll von mir eine Datei / das Skript bekommen, die er nach erfolgter Verschiebung auf den neuen Mailserver lediglich ausführen braucht, damit alle Einträge des Servers in seinem Thunderbirdprofil geändert werden.

Das Skript soll also zunächst aus der profiles.ini den Ordnernamen "Path=xxxxxxxx.default" auslesen
damit dieser Ordner als Variable verwendet werden kann (falls das überhaupt notwendig ist)
Dann soll aus diesem Ordner die Datei "prefs.js" verändert werden:
suche nach: "mailserver.domain.de" ersetzen durch "neuerserver.domain.de"

Das ist eigentlich schon alles.
Ich hoffe, dass Ihr mir bei der Erstellung unter die Arme greifen könnt.

Schönen Gruß

Torben

Content-ID: 183692

Url: https://administrator.de/contentid/183692

Ausgedruckt am: 21.11.2024 um 20:11 Uhr

Skyemugen
Skyemugen 18.04.2012 um 10:59:55 Uhr
Goto Top
Aloha,

Suchfunktion - ich erinnere mich an mindestes zwei vorhande Themen dieser Art, gut, eines könnte mit Firefox sein, Abhandlung ist aber gleich, ein Bearbeiten einer spez. .js Datei wurde auch bereits bearbeitet, such mal im Batch-Bereich ...

greetz André

edit: nicht zu vergessen, die unzähligen Threads mit suchen und ersetzen im Batch-Bereich


Ok, heute scheint die Sonne ...
@echo off & setlocal
set "Alt=mailserver.domain.de"  
set "Neu=neuerserver.domain.de"  

:VBS-Inliner
set "MR=%temp%\ReplaceAll.vbs"  
if not exist "%MR%" >"%MR%" echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2))  

:Dateibearbeitung
for /f "delims=" %%s in ('dir /b /s "%appdata%\thunderbird\profiles\prefs.js"^|findstr .default\\prefs') do (  
	REM Ablauf
	echo cscript //nologo "%MR%" "%%s" "%Alt%" "%Neu%"  
)
pause
goto :eof

P.S.: Das echo in Zeile 12 dient der Voransicht, wenn du es entfernst, gibt es kein Zurück face-wink

P.P.S.: ? Danke!
torben.dj
torben.dj 18.04.2012 um 14:37:32 Uhr
Goto Top
Vielen Dank Skyemugen,

das ist ja echt der Hammer, was man mit 15 Zeilen so alles anstellen kann.
Du hast mir auf jeden Fall einen riesen Haufen Arbeit erspart.

Vielen Dank für deine Mühen.

Gruß Torben
Skyemugen
Skyemugen 18.04.2012 um 15:00:43 Uhr
Goto Top
Zitat von @torben.dj:
das ist ja echt der Hammer, was man mit 15 Zeilen so alles anstellen kann.

Zu viel, viel zu viel, ### Verein ... ach ne das war beim Eishockey ;-D

15 Zeilen, wenn's danach ginge ...
if not exist "%temp%\ReplaceAll.vbs" >"%temp%\ReplaceAll.vbs" echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2))  
for /f "delims=" %%s in ('dir /b /s "%appdata%\thunderbird\profiles\prefs.js"^|findstr .default\\prefs') do echo cscript //nologo "%temp%\ReplaceAll.vbs" "%%s" "mailserver.domain.de" "neuerserver.domain.de"  

sieht nicht so nach Arbeit aus face-wink ... dennoch: Suchfunktion, nichts weiter wäre notwendig gewesen :-P

greetz André