user2009
Goto Top

Thunderbird portable - Sicherung prefs.js vorm Starten - kein Verlust mehr von Postfächern Konten beim fehlerhaften Beenden

Problem beim mobilen/ portablen Thunderbird ist manchmal das Beenden.
Im Hintergrund ist der Prozess noch nicht geschlossen, aber der Nutzer zieht den USB-Datenträger schon ab.
Beim nächsten Start sind alle Konten und Postfächer weg.
Aber es fehlt eigentlich nur die letzte intakte Version der Datei prefs.js im Ordner profile.
Eine Lösung kann die Sicherung dieser Datei vorm eigentlichen Start sein.
Ein Script anbei:

:Infos
:: 1) Script in den Ordner kopieren, wo sich die "portablethunderbird.exe" befindet (z.B. \thunderbird_portable)
:: 2) erwartet wird z.B. \thunderbird_portable\profile\prefs.js
:: 3) die Datei "prefs.js" wird vorm eigentlichen Start des Thunderbird in \thunderbird_portable\profile\bak\JJJJMMTT_hh-mm_prefs.js gesichert

@echo off
setlocal EnableDelayedExpansion
rem cmd /V:ON
set "titel=Thunderbird start und backup prof.js #2010.02.18"  
title %titel%
color F9

:Infos
:: 1) Script in den Ordner kopieren, wo sich die "portablethunderbird.exe"  befindet (z.B. \thunderbird_portable) 
:: 2) erwartet wird z.B. \thunderbird_portable\profile\prefs.js
:: 3) die Datei "prefs.js" wird vorm eigentlichen Start des Thunderbird in \thunderbird_portable\profile\bak\JJJJMMTT_hh-mm_prefs.js gesichert 

:GetDateTimeStamp
::Datum und Zeit holen

set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set "datum=%jahr%%monat%%tag%"  

set hh=%time:~-11,2%
::for /f "tokens=1 delims=:" %%z in ('time /t') do @(set hh=%%z) 
set min=%time:~-8,2%
::for /f "tokens=2 delims=:" %%z in ('time /t') do @(set min=%%z) 
set "zeit=%hh%-%min%"  
set "DTS=%datum%_%zeit%"  

:: wer es universell benötigt:
:: die "GetAllDateTimeInfos.bat" von "Biber" verwenden: 
:: [content:17083] 

:var
::echo Laufwerk ... %~d0
::echo Pfad     ... %~p0
set "script_path=%~dp0"  
set "script_path=%script_path:~0,-1%"  
:: ergibt z.B. "d:\thunderbird_portable" 

ping -n 3 localhost>nul
ECHO.

:backup1
set "abschnitt=backup1"  
if not exist %script_path%\profile\bak md %script_path%\profile\bak
echo D | xcopy "%script_path%\profile\prefs.js" "%script_path%\profile\bak\%DTS%_prefs.js"   
rem Optionen:  xcopy /V / F /L 

::cd "%script_path%\profile\bak\" 
::rename "prefs.js"  "%DTS%_prefs.js" 

call :debug
IF %FEHLER%==0 GOTO backup2
GOTO ERROR

:backup2
set "abschnitt=backup2"  

echo alte kopien löschen 
set "PFAD_DEL=%script_path%\profile\bak"  
set "Log_DEL=delete_directorys.txt"  

echo -------------------------------
:: Dank "Biber" gibt hier es diese elegante Variante 
:: [content:133243#516697]
FOR /F "skip=20 delims=" %%i in ('Dir /a-d /b /o-d %PFAD_DEL%\') do (del "%PFAD_DEL%\%%i" /s /q &&echo "%%i">>%Log_DEL%)  
:: es werden, bis auf die 20 aktuellsten, alle gelöscht (bzw das Löschen mit "(@ECHO del .." angezeigt) 



echo Error %ERRORLEVEL% >>%Log_DEL%
echo Ende %Datum% %Zeit% >>%Log_DEL%
echo -------------------------------
call :debug
IF %FEHLER%==0 GOTO Backup_Profile
GOTO ERROR


:backup_profile
set "abschnitt=Backup_Profile"  

rem komplette Thunderbird-Sicherung
::cd /D %script_path%\profile\
::d:\7-ZipPortable4.57\App\7-Zip\7z u -t7z archive-today.7z -r * -x!*.msf -x!*.mfl -x!panacea.dat -x!*.~js -x!*.bak -x!*.txt -x!localstore.rdf -x!*.jar -x!chrome.rdf -x!*.mfl -x!*.html -x!compreg.dat -x!*.ini -x!xpti.dat -x!Standard\chrome\overlayinfo\* -x!Standard\extensions\* -mx

call :debug
IF %FEHLER%==0 GOTO START
GOTO ERROR

:START
set "abschnitt=Start"  

%script_path%\portablethunderbird.exe

call :debug
IF %FEHLER%==0 GOTO END
GOTO ERROR

:ERROR
color 04
ECHO.
ECHO   Fehler   !
ECHO.
PAUSE 


:END
echo.
echo E N D E
echo.
::echo [Fenster bitte schlieáen]
echo.

:EOF
::pause>nul
@exit


:debug
SET FEHLER=%errorlevel% 
echo. & echo -- %Abschnitt% --
echo Fehlercode: %FEHLER% & echo.
ping -n 3 localhost>nul


- Verwendete Quellen -

Datum und Uhrzeit - wer es universell benötigt:
die "GetAllDateTimeInfos.bat" von "Biber" verwenden:
Workshop Batch for Runaways - Part III - Datums- und Zeitvariablen im Batch

nur die aktuellesten x-Dateien aufheben:
von "Biber" gibt hier es diese elegante Variante
Im Backupordner mittels cmd alle Backups, außer den letzen drei löschen

thunderbird portable mobil
postfach konto einstellungen emails email e-mail
beschädigt weg verschwunden gelöscht
reparieren reparatur wiederherstellen wiederherstellung recovery

Content-Key: 136308

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

Printed on: April 26, 2024 at 16:04 o'clock

Member: fstaffel
fstaffel Oct 29, 2015 at 10:59:34 (UTC)
Goto Top
Bei den aktuellen Thunderbird Portable Versionen sind die Pfade (Data\profile) und der Programmaufruf anders.
Ein aktuelleres Skript findet man hier, sonst funktioniert es recht gut bisher:

@echo off
setlocal EnableDelayedExpansion
rem cmd /V:ON
set "titel=Thunderbird start und backup prof.js #2010.02.18"  
title %titel%
color F9

:Infos
:: 1) Script in den Ordner kopieren, wo sich die "portablethunderbird.exe"  befindet (z.B. \thunderbird_portable) 
:: 2) erwartet wird z.B. \thunderbird_portable\profile\prefs.js
:: 3) die Datei "prefs.js" wird vorm eigentlichen Start des Thunderbird in \thunderbird_portable\profile\bak\JJJJMMTT_hh-mm_prefs.js gesichert 

:GetDateTimeStamp
::Datum und Zeit holen

set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set "datum=%jahr%%monat%%tag%"  

set hh=%time:~-11,2%
::for /f "tokens=1 delims=:" %%z in ('time /t') do @(set hh=%%z) 
set min=%time:~-8,2%
::for /f "tokens=2 delims=:" %%z in ('time /t') do @(set min=%%z) 
set "zeit=%hh%-%min%"  
set "DTS=%datum%_%zeit%"  

:: wer es universell benötigt:
:: die "GetAllDateTimeInfos.bat" von "Biber" verwenden: 
:: [content:17083] 

:var
::echo Laufwerk ... %~d0
::echo Pfad     ... %~p0
set "script_path=%~dp0"  
set "script_path=%script_path:~0,-1%"  
:: ergibt z.B. "d:\thunderbird_portable" 

ping -n 3 localhost>nul
ECHO.

:backup1
set "abschnitt=backup1"  
if not exist %script_path%\Data\profile\bak md %script_path%\Data\profile\bak
echo D | xcopy "%script_path%\Data\profile\prefs.js" "%script_path%\Data\profile\bak\%DTS%_prefs.js"   
rem Optionen:  xcopy /V / F /L 

::cd "%script_path%\Data\profile\bak\" 
::rename "prefs.js"  "%DTS%_prefs.js" 

call :debug
IF %FEHLER%==0 GOTO backup2
GOTO ERROR

:backup2
set "abschnitt=backup2"  

echo alte kopien löschen 
set "PFAD_DEL=%script_path%\Data\profile\bak"  
set "Log_DEL=delete_directorys.txt"  

echo -------------------------------
:: Dank "Biber" gibt hier es diese elegante Variante 
:: [content:133243#516697]
FOR /F "skip=20 delims=" %%i in ('Dir /a-d /b /o-d %PFAD_DEL%\') do (del "%PFAD_DEL%\%%i" /s /q &&echo "%%i">>%Log_DEL%)  
:: es werden, bis auf die 20 aktuellsten, alle gelöscht (bzw das Löschen mit "(@ECHO del .." angezeigt) 



echo Error %ERRORLEVEL% >>%Log_DEL%
echo Ende %Datum% %Zeit% >>%Log_DEL%
echo -------------------------------
call :debug
IF %FEHLER%==0 GOTO Backup_Profile
GOTO ERROR


:backup_profile
set "abschnitt=Backup_Profile"  

rem komplette Thunderbird-Sicherung
::cd /D %script_path%\Data\profile\
::d:\7-ZipPortable4.57\App\7-Zip\7z u -t7z archive-today.7z -r * -x!*.msf -x!*.mfl -x!panacea.dat -x!*.~js -x!*.bak -x!*.txt -x!localstore.rdf -x!*.jar -x!chrome.rdf -x!*.mfl -x!*.html -x!compreg.dat -x!*.ini -x!xpti.dat -x!Standard\chrome\overlayinfo\* -x!Standard\extensions\* -mx

call :debug
IF %FEHLER%==0 GOTO START
GOTO ERROR

:START
set "abschnitt=Start"  

%script_path%\ThunderbirdPortable.exe

call :debug
IF %FEHLER%==0 GOTO END
GOTO ERROR

:ERROR
color 04
ECHO.
ECHO   Fehler   !
ECHO.
PAUSE 


:END
echo.
echo E N D E
echo.
::echo [Fenster bitte schlieáen]
echo.

:EOF
::pause>nul
@exit


:debug
SET FEHLER=%errorlevel% 
echo. & echo -- %Abschnitt% --
echo Fehlercode: %FEHLER% & echo.
ping -n 3 localhost>nul