Adobe-Stamps-Backup.ps1: Log-Funktion integriert, Write-Warning/Write-Host durch Write-Log ersetzt

This commit is contained in:
buiaca 2026-08-11 13:18:48 +02:00
parent a117af53de
commit 09d8cf3a75

View File

@ -4,6 +4,8 @@
.DESCRIPTION .DESCRIPTION
Kopiert den gesamten Inhalt des Adobe Stamps-Ordners (inkl. Unterordner wie Dynamic) Kopiert den gesamten Inhalt des Adobe Stamps-Ordners (inkl. Unterordner wie Dynamic)
in einen Zielordner. Die Struktur wird als "StampsBackup" abgelegt. in einen Zielordner. Die Struktur wird als "StampsBackup" abgelegt.
Ein detaillierter Log wird in einer Datei "Adobe-Stamps-Backup.log"
imselben Verzeichnis wie die Sicherung gespeichert.
.PARAMETER TargetPath .PARAMETER TargetPath
Zielordner, in den die Sicherung geschrieben wird. Wird erstellt, falls nicht vorhanden. Zielordner, in den die Sicherung geschrieben wird. Wird erstellt, falls nicht vorhanden.
.EXAMPLE .EXAMPLE
@ -14,6 +16,30 @@ param (
[string]$TargetPath [string]$TargetPath
) )
# Funktion: Schreibt eine Log-Zeile mit Zeitstempel in die Log-Datei und auf die Konsole
function Write-Log {
param (
[string]$Message,
[string]$Level = "INFO"
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$logEntry = "$timestamp [$Level] $Message"
# Log-Datei imselben Verzeichnis wie die Sicherung
$logFile = Join-Path $TargetPath "Adobe-Stamps-Backup.log"
# Stelle sicher, dass das Zielverzeichnis existiert
if (-not (Test-Path $TargetPath)) {
New-Item -ItemType Directory -Path $TargetPath -Force | Out-Null
}
# Schreibe in die Log-Datei (anhängen)
Add-Content -Path $logFile -Value $logEntry
# Gib auch auf der Konsole aus
switch ($Level) {
"WARN" { Write-Host $logEntry -ForegroundColor Yellow }
"ERROR" { Write-Host $logEntry -ForegroundColor Red }
default { Write-Host $logEntry -ForegroundColor Green }
}
}
# Standardpfad zu den Adobe Acrobat Custom Stamps (Roaming / AppData) # Standardpfad zu den Adobe Acrobat Custom Stamps (Roaming / AppData)
# Entspricht %AppData%\Adobe\Acrobat\DC\Stamps # Entspricht %AppData%\Adobe\Acrobat\DC\Stamps
$adobeStampsPath = Join-Path $env:APPDATA "Adobe\Acrobat\DC\Stamps" $adobeStampsPath = Join-Path $env:APPDATA "Adobe\Acrobat\DC\Stamps"
@ -21,33 +47,32 @@ $adobeStampsPath = Join-Path $env:APPDATA "Adobe\Acrobat\DC\Stamps"
# Ziel-Unterordner innerhalb von TargetPath # Ziel-Unterordner innerhalb von TargetPath
$backupFolder = Join-Path $TargetPath "StampsBackup" $backupFolder = Join-Path $TargetPath "StampsBackup"
# 1. Pruefen, ob der Quellordner (Adobe Stamps) existiert # 1. Prüfen, ob der Quellordner (Adobe Stamps) existiert
if (-not (Test-Path $adobeStampsPath)) { if (-not (Test-Path $adobeStampsPath)) {
Write-Warning "Der Adobe Stamps-Ordner wurde unter '$adobeStampsPath' nicht gefunden." Write-Log "Der Adobe Stamps-Ordner wurde unter '$adobeStampsPath' nicht gefunden." "WARN"
Write-Warning "Falls noch keine eigenen Stempel erstellt wurden, existiert der Ordner noch nicht." Write-Log "Falls noch keine eigenen Stempel erstellt wurden, existiert der Ordner noch nicht." "WARN"
Write-Warning "Erstelle eine Test-Marke in Adobe Acrobat -> Kommentar -> Stempel -> Eigene Stempel," Write-Log "Erstelle eine Test-Marke in Adobe Acrobat -> Kommentar -> Stempel -> Eigene Stempel, damit der Ordner generiert wird, und wiederhole den Vorgang." "WARN"
Write-Warning "damit der Ordner generiert wird, und wiederhole den Vorgang."
exit 1 exit 1
} }
# 2. Zielpfad erstellen, falls nicht vorhanden # 2. Zielpfad erstellen, falls nicht vorhanden
if (-not (Test-Path $backupFolder)) { if (-not (Test-Path $backupFolder)) {
New-Item -Path $backupFolder -ItemType Directory -Force | Out-Null New-Item -ItemType Directory -Path $backupFolder -Force | Out-Null
Write-Host "Der Sicherungsordner '$backupFolder' wurde erstellt." Write-Log "Der Sicherungsordner '$backupFolder' wurde erstellt."
} }
# 3. Alle Stempel (PDF-Dateien und Unterordner) kopieren # 3. Alle Stempel (PDF-Dateien und Unterordner) kopieren
try { try {
# -Recurse kopiert Unterordner wie Dynamic, Droplist etc. mit # -Recurse kopiert Unterordner wie Dynamic, Droplist etc. mit
Copy-Item -Path $adobeStampsPath\* -Destination $backupFolder -Force -Recurse -ErrorAction Stop Copy-Item -Path "$adobeStampsPath\*" -Destination $backupFolder -Force -Recurse -ErrorAction Stop
# Anzahl der kopierten Dateien zaehlen fuer Rueckmeldung # Anzahl der kopierten Dateien zählen für Rückmeldung
$fileCount = (Get-ChildItem -Path $backupFolder -Recurse -File).Count $fileCount = (Get-ChildItem -Path $backupFolder -Recurse -File).Count
Write-Host "Erfolgreich alle Adobe Stempel aus '$adobeStampsPath' nach '$backupFolder' gesichert." Write-Log "Erfolgreich alle Adobe Stempel aus '$adobeStampsPath' nach '$backupFolder' gesichert."
Write-Host "Kopierte Dateien: $fileCount" Write-Log "Kopierte Dateien: $fileCount"
} }
catch { catch {
Write-Error "Fehler bei der Sicherung der Adobe Stempel: $_" Write-Log "Fehler bei der Sicherung der Adobe Stempel: $_" "ERROR"
exit 1 exit 1
} }