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

Script zum Einsammeln automatischer Firefox Bookmark-Backups

Frage Entwicklung Batch & Shell

Mitglied: Pferdinand

Pferdinand (Level 1) - Jetzt verbinden

15.12.2014 um 11:16 Uhr, 1289 Aufrufe, 2 Kommentare

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:

01.
@echo off 
02.
if exist listfile.txt del listfile.txt 
03.
 
04.
for /d %%a in ("c:\dokumente und einstellungen\user*") do ( 
05.
	for /d %%b in ("%%a\Anwendungsdaten\Mozilla\Firefox\Profiles\*.default") do ( 
06.
		echo %%b\bookmarkbackups >> listfile.txt 
07.
		7z.exe a -tzip -ir"@listfile.txt" c:\temp\bookmarks.zip  
08.
09.
)
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
Mitglied: Friemler
15.12.2014, aktualisiert um 17:02 Uhr
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.

Backup-Script

01.
@echo off & setlocal 
02.
 
03.
set "UserFolders=C:\Dokumente und Einstellungen\*.*" 
04.
set "AppDataPath=Anwendungsdaten" 
05.
 
06.
set "OutFile=%UserProfile%\Desktop\%ComputerName%_Bookmarks.zip" 
07.
set "WorkFolder=%Temp%\FFBookmarkBackup_%Random%" 
08.
set "PackerPath=7zip.exe" 
09.
 
10.
if exist "%OutFile%" del "%OutFile%" 
11.
md "%WorkFolder%" 
12.
pushd "%WorkFolder%" 
13.
 
14.
for /d %%a in ("%UserFolders%") do ( 
15.
  for /d %%b in ("%%a\%AppDataPath%\Mozilla\Firefox\Profiles\*.default*") do ( 
16.
    md "%%~nxa" 
17.
    copy "%%b\bookmarkbackups\*.*" "%%~nxa" 
18.
    "%PackerPath%" a -tzip "%OutFile%" "%%~nxa\" 
19.
20.
21.
 
22.
popd 
23.
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.

Restore-Script

01.
@echo off & setlocal 
02.
 
03.
set "UserFolders=C:\Users\*.*" 
04.
set "AppDataPath=AppData\Roaming" 
05.
 
06.
set "InFile=%~1" 
07.
set "WorkFolder=%Temp%\FFBookmarkRestore_%Random%" 
08.
set "PackerPath=7zip.exe" 
09.
 
10.
if "%InFile%" equ "" ( 
11.
  echo Bitte geben Sie eine Eingabedatei an 
12.
  exit /b 1 
13.
14.
if not exist "%InFile%" ( 
15.
  echo Die Eingabedatei existiert nicht 
16.
  exit /b 2 
17.
18.
 
19.
md "%WorkFolder%" 
20.
pushd "%WorkFolder%" 
21.
 
22.
"%PackerPath%" x "%InFile%" 
23.
 
24.
for /d %%a in ("%UserFolders%") do ( 
25.
  for /d %%b in ("%%a\%AppDataPath%\Mozilla\Firefox\Profiles\*.default*") do ( 
26.
    if exist "%%~nxa" ( 
27.
      copy "%%~nxa\*.*" "%%b\bookmarkbackups" 
28.
    ) else ( 
29.
      echo Für das Konto %%~nxa wurden keine Bookmarks gesichert. 
30.
31.
32.
33.
 
34.
popd 
35.
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
Bitte warten ..
Mitglied: Pferdinand
15.12.2014 um 20:19 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

Windows Tools
Automatischer FTP-Upload ohne angemeldeten Benutzer (5)

Frage von SarekHL zum Thema Windows Tools ...

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

Frage von Xaero1982 zum Thema Microsoft ...

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

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

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

Frage von Unwichtig zum Thema Netzwerkmanagement ...