Files
nodeMap/git_diff_to_zip.ps1

55 lines
1.8 KiB
PowerShell

# Um die .ps1-Datei auszuführen, gib den folgenden Befehl ein:
# .\zip_changed_files.ps1
# Tags als Variablen deklarieren
# $tag1 = "v1.0.0" # Ersetze durch deinen ersten Tag
# $tag2 = "v1.1.0" # Ersetze durch deinen zweiten Tag
$tag1 = "v1.0.18.0" # Ersetze durch deinen ersten Tag
$tag2 = "v1.0.19.1" # Ersetze durch deinen zweiten Tag
# Aktuelles Datum und Uhrzeit für den Dateinamen
$currentDateTime = (Get-Date).ToString("dd.MM.yyyy_HH_mm")
# Name der Textdatei mit geänderten Dateien
$changedFilesList = "changed_files_$currentDateTime.txt"
# Führe git diff aus, um die geänderten Dateien zwischen zwei Tags zu ermitteln
Write-Host "Ermittle geänderte Dateien zwischen $tag1 und $tag2..."
git diff --name-only $tag1 $tag2 > $changedFilesList
# Überprüfe, ob die Textdatei erstellt wurde
if (-Not (Test-Path $changedFilesList)) {
Write-Host "Die Liste der geänderten Dateien konnte nicht erstellt werden. Skript wird beendet."
exit 1
}
Write-Host "Liste der geänderten Dateien erstellt: $changedFilesList"
# Name der ZIP-Datei mit Datum und Uhrzeit
$zipFile = "changed_files_$currentDateTime.zip"
# Stelle sicher, dass die ZIP-Datei nicht bereits existiert
if (Test-Path $zipFile) {
Remove-Item $zipFile
}
# Lade die Dateien aus der Liste
$files = Get-Content $changedFilesList
# Erstelle ein neues ZIP-Archiv
Add-Type -AssemblyName System.IO.Compression.FileSystem
$zipArchive = [System.IO.Compression.ZipFile]::Open($zipFile, 'Create')
foreach ($file in $files) {
try {
# Absolute Pfade erstellen
$filePath = (Resolve-Path $file).Path
[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zipArchive, $filePath, $file)
} catch {
Write-Host "Fehler beim Hinzufügen der Datei: $file"
}
}
$zipArchive.Dispose()
Write-Host "ZIP-Datei erstellt: $zipFile"