pferdinand
Goto Top

Script zum Einsammeln automatischer Firefox Bookmark-Backups

Hallo Allerseits,


ich muss mehrere PC's von Windows XP auf Windows 7 umstellen. Da viele PC's von mehreren Mitarbeitern nacheinander genutzt wurden, hat der ein oder andere von ihnen auf dem PC Firefox Lesezeichen angelegt. Nun möchte ich nicht in jedes Userprofil einzeln abtauchen sondern bequem per Script die für jeden angelegten Bookmarks einsammeln und in einer zentralen Datei oder einem zentralen Ordner speichern. Dazu habe ich mit mit Hilfe des in diesem Forum sehr guten "FOR Schleifen Tutorial" folgende Zeilen zusammen gebastelt:

@echo off
if exist listfile.txt del listfile.txt

for /d %%a in ("c:\dokumente und einstellungen\user*") do (  
	for /d %%b in ("%%a\Anwendungsdaten\Mozilla\Firefox\Profiles\*.default") do (  
		echo %%b\bookmarkbackups >> listfile.txt
		7z.exe a -tzip -ir"@listfile.txt" c:\temp\bookmarks.zip   
	)
)

Leider macht mir 7-Zip einen Strich durch die Rechnung, da er leider NICHT den gesamten Pfad mit sichert sondern nur die im angegebenen Pfad enthaltenen Dateien. Da diese bei jedem User gleich sind, erhalte ich nur die BOOKMARKBACKUPS des ersten Users, bei allen weiteren Usern bricht 7-Zip mit dem Hinweis auf doppelte Dateinamen ab.

Wie könnte ich das realisieren ohne noch mehr betriebssystem fremde Anwendungen wie 7-Zip nehmen zu müssen?

Vielen Dank schonmal im voraus


Ferdi

Content-Key: 257666

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

Printed on: April 19, 2024 at 20:04 o'clock

Member: Friemler
Friemler Dec 15, 2014 updated at 16:02:47 (UTC)
Goto Top
Hallo Ferdi,

da kommst Du wohl nicht um einen zweistufigen Prozess herum:

  • Kopieren der Bookmarks jedes Benutzers in ein separates temporäres Verzeichnis
  • Hinzufügen dieses Verzeichnisses zum Archiv

Analoges gilt für den Restore.

back-to-topBackup-Script

@echo off & setlocal

set "UserFolders=C:\Dokumente und Einstellungen\*.*"  
set "AppDataPath=Anwendungsdaten"  

set "OutFile=%UserProfile%\Desktop\%ComputerName%_Bookmarks.zip"  
set "WorkFolder=%Temp%\FFBookmarkBackup_%Random%"  
set "PackerPath=7zip.exe"  

if exist "%OutFile%" del "%OutFile%"  
md "%WorkFolder%"  
pushd "%WorkFolder%"  

for /d %%a in ("%UserFolders%") do (  
  for /d %%b in ("%%a\%AppDataPath%\Mozilla\Firefox\Profiles\*.default*") do (  
    md "%%~nxa"  
    copy "%%b\bookmarkbackups\*.*" "%%~nxa"  
    "%PackerPath%" a -tzip "%OutFile%" "%%~nxa\"  
  )
)

popd
rd /s /q "%WorkFolder%"  

In Zeile 8 muss der Pfad zur 7zip.exe eingetragen werden. Das Script erzeugt eine Datei, deren Name nach dem Muster <ComputerName>_Bookmarks.zip aufgebaut ist. Die Archivdatei enthält für jeden Benutzer ein Verzeichnis, das die Dateien aus dem bookmarkbackups-Verzeichnis des jeweiligen Firefox-Defaultprofils enthält. Der Speicherort der Datei kann in Zeile 6 eingestellt werden.

back-to-topRestore-Script

@echo off & setlocal

set "UserFolders=C:\Users\*.*"  
set "AppDataPath=AppData\Roaming"  

set "InFile=%~1"  
set "WorkFolder=%Temp%\FFBookmarkRestore_%Random%"  
set "PackerPath=7zip.exe"  

if "%InFile%" equ "" (  
  echo Bitte geben Sie eine Eingabedatei an
  exit /b 1
)
if not exist "%InFile%" (  
  echo Die Eingabedatei existiert nicht
  exit /b 2
)

md "%WorkFolder%"  
pushd "%WorkFolder%"  

"%PackerPath%" x "%InFile%"  

for /d %%a in ("%UserFolders%") do (  
  for /d %%b in ("%%a\%AppDataPath%\Mozilla\Firefox\Profiles\*.default*") do (  
    if exist "%%~nxa" (  
      copy "%%~nxa\*.*" "%%b\bookmarkbackups"  
    ) else (
      echo Für das Konto %%~nxa wurden keine Bookmarks gesichert.
    )
  )
)

popd
rd /s /q "%WorkFolder%"  

In Zeile 8 muss wieder der Pfad zur 7zip.exe eingetragen werden. Die mit dem ersten Script erzeugte ZIP-Datei kann per Drag&Drop oder Kommandozeile an das Script übergeben werden. Dabei muss der vollständige Pfad der Datei verwendet werden!! Die Verzeichnisse mit den Benutzerprofilen müssen auf Quell- und Zielrechner den gleichen Namen haben. Um den Restore zunächst nur zu testen, kannst Du in Zeile 27 einen ECHO-Befehl vor den COPY-Befehl schreiben.

Gruß
Friemler
Member: Pferdinand
Pferdinand Dec 15, 2014 at 19:19:50 (UTC)
Goto Top
Hallo Friemler,


vielen Dank. Das sieht sehr gut aus und müsste klappen. Ich werde es gleich Morgen Mittag auf der Arbeit ausprobieren.


Gruß

Ferdi