Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

muss einen Pfad aus einer .ini Datei herrausziehen und muss dann in einer .js Datei aus diesem Pfad 2 Zeilen ändern

Frage Entwicklung Batch & Shell

Mitglied: xxt1985

xxt1985 (Level 1) - Jetzt verbinden

19.08.2009, aktualisiert 12:19 Uhr, 6082 Aufrufe, 9 Kommentare

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?
Mitglied: rubberman
23.08.2009 um 03:09 Uhr
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).

01.
@echo off &setlocal 
02.
set js=prefs.js 
03.
set newPath1=C:\\Programme\\Mozilla Thunderbird\\NEUE_Signatur_TEST.txt 
04.
set newPath2=[ProfD]../../../../../../Programme/Mozilla Thunderbird/NEUE_Signatur_TEST.txt 
05.
 
06.
setlocal enabledelayedexpansion 
07.
set iniPath=%appdata%\Thunderbird 
08.
set iniFile=profiles.ini 
09.
set iniSection=Profile0 
10.
set iniKey=Path 
11.
 
12.
set x=0 
13.
set iniSection=[%iniSection%] 
14.
pushd "%iniPath%" 
15.
for /f "tokens=*" %%i in ('findstr /b /v ";" "%iniFile%"') do ( 
16.
 if defined iniValue goto forward 
17.
 echo %%i|findstr /b /c:"%iniSection%" /i>nul&&set x=1 
18.
 echo %%i|findstr /b /c:"["|findstr /b /c:"%iniSection%" /i /v>nul&&set x=0 
19.
 if !x!==1 (  
20.
  for /f "delims== tokens=1,2" %%a in ("%%i") do set "XiniKey=%%a" &set "XiniValue=%%b" 
21.
  if defined XiniValue ( 
22.
   if /i !XiniKey!==%iniKey% set "iniValue=!XiniValue!" 
23.
24.
25.
26.
:forward 
27.
popd 
28.
endlocal &set "iniValue=%iniValue%" 
29.
 
30.
set jsPath=%appdata%\Thunderbird\%iniValue:/=\% 
31.
pushd "%jsPath%" 
32.
type nul>tmp.js 
33.
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 
34.
for /f "delims=: tokens=1" %%i in ('findstr /n "^" "%js%"^|findstr /c:"mail.identity.id3.sig_file-rel"') do set /a line2=%%i 
35.
for /f "delims=: tokens=1*" %%i in ('findstr /n "^" "%js%"') do set /a line=%%i &set "code=%%j" &call :sub 
36.
move /y "tmp.js" "%js%" 
37.
popd 
38.
pause 
39.
goto :eof 
40.
 
41.
:sub 
42.
if not defined code (echo.>>tmp.js) &goto :eof 
43.
if %line%==%line1% ( 
44.
  call set "code=%%code:C:\\Programme\\Mozilla Thunderbird\\Signatur_alt.txt=%newPath1%%%" 
45.
46.
if %line%==%line2% ( 
47.
  call set "code=%%code:[ProfD]../../../../../../Programme/Mozilla Thunderbird/Signatur_alt.txt=%newPath2%%%" 
48.
49.
echo.%code%>>tmp.js 
50.
goto :eof
Grüße
rubberman
Bitte warten ..
Mitglied: xxt1985
25.08.2009 um 08:50 Uhr
Hallo rubberman,

Danke das skript ist bis zu Zeile 30 wunderbar und funktioniert auch.

Aber das Skript schreibt in die .js datei nur echo OFF


Gruß
Bitte warten ..
Mitglied: rubberman
25.08.2009 um 15:07 Uhr
Hallo xxt1985.

Wahrscheinlich ein Leerzeichenproblem. Ich ändere mal oben. Probier noch mal. Falls es nicht funktioniert, poste mal das JavaScript, dann kann ich das vor Ort testen.

Grüße
rubberman
Bitte warten ..
Mitglied: xxt1985
25.08.2009 um 15:36 Uhr
Hier ist das JavaScript.

Danke


  1. Mozilla User Preferences

/* Do not edit this file.
    • If you make changes to this file while the application is running,
    • the changes will be overwritten when the application exits.
*/

user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1250667875);
user_pref("app.update.lastUpdateTime.background-update-timer", 1250583021);
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1250583021);
user_pref("extensions.lastAppVersion", "2.0.0.19");
user_pref("intl.charsetmenu.mailview.cache", "ISO-8859-15");
user_pref("ldap_2.prefs_migrated", true);
user_pref("ldap_2.servers.domainGlobal.auth.dn", "somain\\email");
user_pref("ldap_2.servers.domainGlobal.auth.savePassword", true);
user_pref("ldap_2.servers.domainGlobal.description", "domain Global");
user_pref("ldap_2.servers.domainGlobal.filename", "abook.mab");
user_pref("ldap_2.servers.domainGlobal.maxHits", 250);
user_pref("ldap_2.servers.domainGlobal.replication.lastChangeNumber", 0);
user_pref("ldap_2.servers.domainGlobal.uri", "ldap://192.168.x.x:389/OU=Globales Adressbuch,OU=Kontakte,DC=domain,DC=local??sub?(objectclass=*)");
user_pref("ldap_2.servers.default.filename", "default.mab");
user_pref("ldap_2.servers.default.replication.lastChangeNumber", 0);
user_pref("ldap_2.servers.default.uri", "moz-abldapdirectory://default.mab");
user_pref("ldap_2.servers.history.replication.lastChangeNumber", 0);
user_pref("ldap_2.servers.pab.replication.lastChangeNumber", 0);
user_pref("mail.account.account1.server", "server1");
user_pref("mail.account.account3.identities", "id3");
user_pref("mail.account.account3.server", "server3");
user_pref("mail.accountmanager.accounts", "account1,account3");
user_pref("mail.accountmanager.defaultaccount", "account3");
user_pref("mail.accountmanager.localfoldersserver", "server1");
user_pref("mail.attachment.store.version", 1);
user_pref("mail.folder.views.version", 1);
user_pref("mail.identity.id3.attach_signature", true);
user_pref("mail.identity.id3.attach_vcard", false);
user_pref("mail.identity.id3.auto_quote", true);
user_pref("mail.identity.id3.compose_html", true);
user_pref("mail.identity.id3.directoryServer", "");
user_pref("mail.identity.id3.doBcc", false);
user_pref("mail.identity.id3.doBccList", "");
user_pref("mail.identity.id3.draft_folder", "imap://vorname.nachname%40domain.de@deb.domain.de/Drafts");
user_pref("mail.identity.id3.drafts_folder_picker_mode", "0");
user_pref("mail.identity.id3.encryption_cert_name", "");
user_pref("mail.identity.id3.encryptionpolicy", 0);
user_pref("mail.identity.id3.escapedVCard", "");
user_pref("mail.identity.id3.fcc", true);
user_pref("mail.identity.id3.fcc_folder", "imap://vorname.nachname%40domain.de@deb.domain.de/Sent");
user_pref("mail.identity.id3.fcc_folder_picker_mode", "0");
user_pref("mail.identity.id3.fcc_reply_follows_parent", false);
user_pref("mail.identity.id3.fullName", "Vorname Nachname");
user_pref("mail.identity.id3.organization", "");
user_pref("mail.identity.id3.overrideGlobal_Pref", false);
user_pref("mail.identity.id3.reply_on_top", 0);
user_pref("mail.identity.id3.reply_to", "");
user_pref("mail.identity.id3.showSaveMsgDlg", false);
user_pref("mail.identity.id3.sig_bottom", true);
user_pref("mail.identity.id3.sig_file", "C:\\Programme\\Mozilla Thunderbird\\Signatur_alt.txt");
user_pref("mail.identity.id3.sig_file-rel", "[ProfD]../../../../../../Programme/Mozilla Thunderbird/Signatur_alt.txt");
user_pref("mail.identity.id3.sign_mail", false);
user_pref("mail.identity.id3.signing_cert_name", "");
user_pref("mail.identity.id3.smtpServer", "smtp2");
user_pref("mail.identity.id3.stationery_folder", "imap://vorname.nachname%40domain.de@deb.domain.de/Templates");
user_pref("mail.identity.id3.tmpl_folder_picker_mode", "0");
user_pref("mail.identity.id3.useremail", "vorname.nachname@domain.de");
user_pref("mail.identity.id3.valid", true);
user_pref("mail.preferences.advanced.selectedTabIndex", 0);
user_pref("mail.preferences.compose.selectedTabIndex", 2);
user_pref("mail.preferences.display.selectedTabIndex", 0);
user_pref("mail.preferences.privacy.selectedTabIndex", 0);
user_pref("mail.root.imap", "C:\\Dokumente und Einstellungen\\username\\Anwendungsdaten\\Thunderbird\\Profiles\\81owgesf.default\\ImapMail");
user_pref("mail.root.imap-rel", "[ProfD]ImapMail");
user_pref("mail.root.none", "C:\\Dokumente und Einstellungen\\username\\Anwendungsdaten\\Thunderbird\\Profiles\\81owgesf.default\\Mail");
user_pref("mail.root.none-rel", "[ProfD]Mail");
user_pref("mail.root.pop3", "C:\\Dokumente und Einstellungen\\username\\Anwendungsdaten\\Thunderbird\\Profiles\\81owgesf.default\\Mail");
user_pref("mail.root.pop3-rel", "[ProfD]Mail");
user_pref("mail.server.server1.ageLimit", 30);
user_pref("mail.server.server1.daysToKeepBodies", 30);
user_pref("mail.server.server1.daysToKeepHdrs", 30);
user_pref("mail.server.server1.directory", "C:\\Dokumente und Einstellungen\\username\\Anwendungsdaten\\Thunderbird\\Profiles\\81owgesf.default\\Mail\\Local Folders");
user_pref("mail.server.server1.directory-rel", "[ProfD]Mail/Local Folders");
user_pref("mail.server.server1.hostname", "Local Folders");
user_pref("mail.server.server1.name", "Lokale Ordner");
user_pref("mail.server.server1.numHdrsToKeep", 30);
user_pref("mail.server.server1.spamActionTargetAccount", "mailbox://nobody@Local%20Folders");
user_pref("mail.server.server1.spamActionTargetFolder", "mailbox://nobody@Local%20Folders/Junk");
user_pref("mail.server.server1.type", "none");
user_pref("mail.server.server1.userName", "nobody");
user_pref("mail.server.server3.ageLimit", 30);
user_pref("mail.server.server3.capability", 791331);
user_pref("mail.server.server3.daysToKeepBodies", 30);
user_pref("mail.server.server3.daysToKeepHdrs", 30);
user_pref("mail.server.server3.directory", "C:\\Dokumente und Einstellungen\\username\\Anwendungsdaten\\Thunderbird\\Profiles\\81owgesf.default\\ImapMail\\deb.domain-1.de");
user_pref("mail.server.server3.directory-rel", "[ProfD]ImapMail/deb.domain-1.de");
user_pref("mail.server.server3.hostname", "deb.domain.de");
user_pref("mail.server.server3.max_cached_connections", 5);
user_pref("mail.server.server3.name", "vorname.nachname@domain.de");
user_pref("mail.server.server3.namespace.personal", "\"INBOX.\"");
user_pref("mail.server.server3.namespace.public", "\"shared.\",\"#shared.\"");
user_pref("mail.server.server3.numHdrsToKeep", 30);
user_pref("mail.server.server3.port", 993);
user_pref("mail.server.server3.socketType", 3);
user_pref("mail.server.server3.spamActionTargetAccount", "imap://vorname.nachname%40domain.de@deb.domain.de");
user_pref("mail.server.server3.spamActionTargetFolder", "mailbox://nobody@Local%20Folders/Junk");
user_pref("mail.server.server3.timeout", 29);
user_pref("mail.server.server3.type", "imap");
user_pref("mail.server.server3.userName", "vorname.nachname@domain.de");
user_pref("mail.smtp.defaultserver", "smtp2");
user_pref("mail.smtpserver.smtp2.auth_method", 1);
user_pref("mail.smtpserver.smtp2.hostname", "deb.domain.de");
user_pref("mail.smtpserver.smtp2.port", 25);
user_pref("mail.smtpserver.smtp2.try_ssl", 0);
user_pref("mail.smtpserver.smtp2.username", "vorname.nachname@domain.de");
user_pref("mail.smtpservers", "smtp2");
user_pref("mail.spam.version", 1);
user_pref("mail.startup.enabledMailCheckOnce", true);
user_pref("mailnews.quotingPrefs.version", 1);
user_pref("mailnews.start_page_override.mstone", "1.8.1.19");
user_pref("mailnews.tags.$label1.color", "#FF0000");
user_pref("mailnews.tags.$label1.tag", "Wichtig");
user_pref("mailnews.tags.$label2.color", "#FF9900");
user_pref("mailnews.tags.$label2.tag", "Dienstlich");
user_pref("mailnews.tags.$label3.color", "#009900");
user_pref("mailnews.tags.$label3.tag", "Persönlich");
user_pref("mailnews.tags.$label4.color", "#3333FF");
user_pref("mailnews.tags.$label4.tag", "Zu erledigen");
user_pref("mailnews.tags.$label5.color", "#993399");
user_pref("mailnews.tags.$label5.tag", "Später");
user_pref("mailnews.tags.version", 2);
user_pref("mailnews.ui.threadpane.version", 5);
user_pref("wallet.caveat", true);
Bitte warten ..
Mitglied: rubberman
25.08.2009 um 21:56 Uhr
Hallo xxt1985.

Habe oben noch mal geändert. Problematisch ist diese Zeile:
01.
user_pref("ldap_2.servers.domainGlobal.uri", "ldap://192.168.x.x:389/OU=Globales Adressbuch,OU=Kontakte,DC=lichtenstern,DC=local??sub?(objectclass=*)");
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
Bitte warten ..
Mitglied: xxt1985
27.08.2009 um 08:21 Uhr
Hallo,

Es funktioniert wunderbar.

Aber die Zeichensetzung des Pfades ist nicht immer gleich, da manche User sich schon eine Signatur eingerichtet haben.
Gibt es nicht die möglichkeit Zeile 62 und 63 mit der Zeilenangabe zu ersetzen?

Gruß
Bitte warten ..
Mitglied: rubberman
27.08.2009 um 11:01 Uhr
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:
01.
set newPath1=user_pref("mail.identity.id3.sig_file", "C:\\Programme\\Mozilla Thunderbird\\NEUE_Signatur_TEST.txt"); 
02.
set newPath2=user_pref("mail.identity.id3.sig_file-rel", "[ProfD]../../../../../../Programme/Mozilla Thunderbird/NEUE_Signatur_TEST.txt");
Zeile 44 geändert auf
01.
  set "code=%newPath1%" 
Zeile 47 geändert auf
01.
  set "code=%newPath2%" 
Grüße
rubberman
Bitte warten ..
Mitglied: xxt1985
27.08.2009 um 12:25 Uhr
So funktioniert das Skript wunderbrächtig.

vielen vielen dank.


01.
@echo off &setlocal 
02.
set js=prefs.js 
03.
set newPath1=user_pref("mail.identity.id3.sig_file", "C:\\Programme\\Mozilla Thunderbird\\NEUE_Signatur_TEST.txt"); 
04.
set newPath2=user_pref("mail.identity.id3.sig_file-rel", "[ProfD]../../../../../../Programme/Mozilla Thunderbird/NEUE_Signatur_TEST.txt"); 
05.
 
06.
 
07.
 
08.
setlocal enabledelayedexpansion 
09.
set iniPath=%appdata%\Thunderbird 
10.
set iniFile=profiles.ini 
11.
set iniSection=Profile0 
12.
set iniKey=Path 
13.
 
14.
set x=0 
15.
set iniSection=[%iniSection%] 
16.
pushd "%iniPath%" 
17.
for /f "tokens=*" %%i in ('findstr /b /v ";" "%iniFile%"') do ( 
18.
 if defined iniValue goto forward 
19.
 echo %%i|findstr /b /c:"%iniSection%" /i>nul&&set x=1 
20.
 echo %%i|findstr /b /c:"["|findstr /b /c:"%iniSection%" /i /v>nul&&set x=0 
21.
 if !x!==1 (  
22.
  for /f "delims== tokens=1,2" %%a in ("%%i") do set "XiniKey=%%a" &set "XiniValue=%%b" 
23.
  if defined XiniValue ( 
24.
   if /i !XiniKey!==%iniKey% set "iniValue=!XiniValue!" 
25.
26.
27.
28.
:forward 
29.
popd 
30.
endlocal &set "iniValue=%iniValue%" 
31.
 
32.
set jsPath=%appdata%\Thunderbird\%iniValue:/=\% 
33.
pushd "%jsPath%" 
34.
type nul>tmp.js 
35.
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 
36.
for /f "delims=: tokens=1" %%i in ('findstr /n "^" "%js%"^|findstr /c:"mail.identity.id3.sig_file-rel"') do set /a line2=%%i 
37.
for /f "delims=: tokens=1*" %%i in ('findstr /n "^" "%js%"') do set /a line=%%i &set "code=%%j" &call :sub 
38.
move /y "tmp.js" "%js%" 
39.
popd 
40.
pause 
41.
goto :eof 
42.
 
43.
:sub 
44.
if not defined code (echo.>>tmp.js) &goto :eof 
45.
if %line%==%line1% ( 
46.
  set "code=%newPath1%" 
47.
48.
if %line%==%line2% ( 
49.
  set "code=%newPath2%" 
50.
51.
echo.%code%>>tmp.js 
52.
goto :eof
Bitte warten ..
Mitglied: rubberman
27.08.2009 um 13:31 Uhr
Na wunderbar
auch wenn das ganze am Ziel, NUR die Pfade zu ersetzen, knapp vorbei geht.

Grüße,
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
gelöst Terminalserver .ini Datei unter C:Windows (8)

Frage von geocast zum Thema Windows Server ...

Batch & Shell
gelöst Variable aus ini Datei auslesen und weiterverwenden (17)

Frage von n0cturne zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...