muss einen Pfad aus einer .ini Datei herrausziehen und muss dann in einer .js Datei aus diesem Pfad 2 Zeilen ändern
Hallo @all, bin leider kein Programmierer. Danke fürs helfen.
Also wir setzten im Betrieb Thunderbird als Email Programm ein.
Da nicht alle Mitarbeiter Signaturen drin haben, soll nun eine einheitliche Signatur bei jeden (200) installiert werden.
Thunderbird hat unterschiedliche Profilnamen: z.B. 81owgesf.default oder w84sdgif.default
der Profilname steht in der .ini Datei. C:\Dokumente und Einstellungen\%username%\Anwendungsdaten\Thunderbird\profiles.ini
In der .ini Datei steht
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path=Profiles/81owgesf.default
In der Datei "C:\Dokumente und Einstellungen\%username%\Anwendungsdaten\Thunderbird\Profiles\81owgesf.default\prefs.js" oder
"C:\Dokumente und Einstellungen\%username%\Anwendungsdaten\Thunderbird\Profiles\w84sdgif.default\prefs.js"
In der .js Datei steht ziemlich in der mitte das folgende. Es reicht aus, die beiden Pfade zu ändern.
user_pref("mail.identity.id3.sig_file", "C:\\Programme\\Mozilla Thunderbird\\Signatur_TEST.txt");
user_pref("mail.identity.id3.sig_file-rel", "[ProfD]../../../../../../Programme/Mozilla Thunderbird/Signatur_TEST.txt");
Wie bekomme ich das denn hin?
Also wir setzten im Betrieb Thunderbird als Email Programm ein.
Da nicht alle Mitarbeiter Signaturen drin haben, soll nun eine einheitliche Signatur bei jeden (200) installiert werden.
Thunderbird hat unterschiedliche Profilnamen: z.B. 81owgesf.default oder w84sdgif.default
der Profilname steht in der .ini Datei. C:\Dokumente und Einstellungen\%username%\Anwendungsdaten\Thunderbird\profiles.ini
In der .ini Datei steht
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path=Profiles/81owgesf.default
In der Datei "C:\Dokumente und Einstellungen\%username%\Anwendungsdaten\Thunderbird\Profiles\81owgesf.default\prefs.js" oder
"C:\Dokumente und Einstellungen\%username%\Anwendungsdaten\Thunderbird\Profiles\w84sdgif.default\prefs.js"
In der .js Datei steht ziemlich in der mitte das folgende. Es reicht aus, die beiden Pfade zu ändern.
user_pref("mail.identity.id3.sig_file", "C:\\Programme\\Mozilla Thunderbird\\Signatur_TEST.txt");
user_pref("mail.identity.id3.sig_file-rel", "[ProfD]../../../../../../Programme/Mozilla Thunderbird/Signatur_TEST.txt");
Wie bekomme ich das denn hin?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123042
Url: https://administrator.de/forum/muss-einen-pfad-aus-einer-ini-datei-herrausziehen-und-muss-dann-in-einer-js-datei-aus-diesem-pfad-2-zeilen-123042.html
Ausgedruckt am: 04.04.2025 um 04:04 Uhr
9 Kommentare
Neuester Kommentar
Hallo xxt1985.
Ich hoffe, mit den paar Informationen von Dir, was einigermaßen sinnvolles gebastelt zu haben.
Bitte mache in jedem Fall eine Sicherheitskopie des JavaScripts, bevor Du testest.
Die Variablen newPath1 und newPath2 musst Du natürlich entsprechend anpassen (hast ja nicht geschrieben, wo die neuen Signaturen liegen).
Grüße
rubberman
Ich hoffe, mit den paar Informationen von Dir, was einigermaßen sinnvolles gebastelt zu haben.
Bitte mache in jedem Fall eine Sicherheitskopie des JavaScripts, bevor Du testest.
Die Variablen newPath1 und newPath2 musst Du natürlich entsprechend anpassen (hast ja nicht geschrieben, wo die neuen Signaturen liegen).
@echo off &setlocal
set js=prefs.js
set newPath1=C:\\Programme\\Mozilla Thunderbird\\NEUE_Signatur_TEST.txt
set newPath2=[ProfD]../../../../../../Programme/Mozilla Thunderbird/NEUE_Signatur_TEST.txt
setlocal enabledelayedexpansion
set iniPath=%appdata%\Thunderbird
set iniFile=profiles.ini
set iniSection=Profile0
set iniKey=Path
set x=0
set iniSection=[%iniSection%]
pushd "%iniPath%"
for /f "tokens=*" %%i in ('findstr /b /v ";" "%iniFile%"') do (
if defined iniValue goto forward
echo %%i|findstr /b /c:"%iniSection%" /i>nul&&set x=1
echo %%i|findstr /b /c:"["|findstr /b /c:"%iniSection%" /i /v>nul&&set x=0
if !x!==1 (
for /f "delims== tokens=1,2" %%a in ("%%i") do set "XiniKey=%%a" &set "XiniValue=%%b"
if defined XiniValue (
if /i !XiniKey!==%iniKey% set "iniValue=!XiniValue!"
)
)
)
:forward
popd
endlocal &set "iniValue=%iniValue%"
set jsPath=%appdata%\Thunderbird\%iniValue:/=\%
pushd "%jsPath%"
type nul>tmp.js
for /f "delims=: tokens=1" %%i in ('findstr /n "^" "%js%"^|findstr /c:"mail.identity.id3.sig_file"^|findstr /c:"mail.identity.id3.sig_file-rel" /v') do set /a line1=%%i
for /f "delims=: tokens=1" %%i in ('findstr /n "^" "%js%"^|findstr /c:"mail.identity.id3.sig_file-rel"') do set /a line2=%%i
for /f "delims=: tokens=1*" %%i in ('findstr /n "^" "%js%"') do set /a line=%%i &set "code=%%j" &call :sub
move /y "tmp.js" "%js%"
popd
pause
goto :eof
:sub
if not defined code (echo.>>tmp.js) &goto :eof
if %line%==%line1% (
call set "code=%%code:C:\\Programme\\Mozilla Thunderbird\\Signatur_alt.txt=%newPath1%%%"
)
if %line%==%line2% (
call set "code=%%code:[ProfD]../../../../../../Programme/Mozilla Thunderbird/Signatur_alt.txt=%newPath2%%%"
)
echo.%code%>>tmp.js
goto :eof
Grüße
rubberman
Hallo xxt1985.
Habe oben noch mal geändert. Problematisch ist diese Zeile:
Obwohl diese in den ursprünglichen FOR Schleifen in den Batchzeilen 44 und 47 eigentlich garnicht berücksichtigt werden durften (wegen des IF-Ausschlusses), hat genau das zum Abbruch geführt. Kann das Verhalten auch nicht erklären.
Habe in diese beiden Zeilen nun eine Zeichenersetzung eingebaut. Das setzt aber voraus, dass die Zeichenfolgen "C:\\Programme\\Mozilla Thunderbird\\Signatur_alt.txt" bzw. "[ProfD]../../../../../../Programme/Mozilla Thunderbird/Signatur_alt.txt" auch buchstabengetreu so im Ausgangsscript vorkommt...
Grüße
rubberman
Habe oben noch mal geändert. Problematisch ist diese Zeile:
user_pref("ldap_2.servers.domainGlobal.uri", "ldap://192.168.x.x:389/OU=Globales Adressbuch,OU=Kontakte,DC=lichtenstern,DC=local??sub?(objectclass=*)");
Habe in diese beiden Zeilen nun eine Zeichenersetzung eingebaut. Das setzt aber voraus, dass die Zeichenfolgen "C:\\Programme\\Mozilla Thunderbird\\Signatur_alt.txt" bzw. "[ProfD]../../../../../../Programme/Mozilla Thunderbird/Signatur_alt.txt" auch buchstabengetreu so im Ausgangsscript vorkommt...
Grüße
rubberman
Hallo xxt1985,
nicht viel anders funktioniert das ganze jetzt schon. Im Vorfeld wird gesucht, welche Zeilennummer die zu ändernden Zeilen haben. In den Batchzeilen 43 und 46 wird dann verglichen, ob diese Zeilennummer mit der gerade zu verarbeitenden Zeile übereinstimmt...
Anders gesagt, das ganze ist kein Problem mehr. In Zeile 3 und Zeile 4 setzt du die gesamte Zeile, also etwa so:
Zeile 44 geändert auf
Zeile 47 geändert auf
Grüße
rubberman
nicht viel anders funktioniert das ganze jetzt schon. Im Vorfeld wird gesucht, welche Zeilennummer die zu ändernden Zeilen haben. In den Batchzeilen 43 und 46 wird dann verglichen, ob diese Zeilennummer mit der gerade zu verarbeitenden Zeile übereinstimmt...
Anders gesagt, das ganze ist kein Problem mehr. In Zeile 3 und Zeile 4 setzt du die gesamte Zeile, also etwa so:
set newPath1=user_pref("mail.identity.id3.sig_file", "C:\\Programme\\Mozilla Thunderbird\\NEUE_Signatur_TEST.txt");
set newPath2=user_pref("mail.identity.id3.sig_file-rel", "[ProfD]../../../../../../Programme/Mozilla Thunderbird/NEUE_Signatur_TEST.txt");
set "code=%newPath1%"
set "code=%newPath2%"
rubberman