feat: PowerShell-Skript erstellt, um geänderte Dateien zwischen zwei Git-Tags zu ermitteln und in einer ZIP-Datei zu archivieren
This commit is contained in:
54
git_diff_to_zip.ps1
Normal file
54
git_diff_to_zip.ps1
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# 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"
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# Name der ZIP-Datei
|
|
||||||
$zipFile = "changed_files.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 changed_files.txt
|
|
||||||
|
|
||||||
# Erstelle ein neues ZIP-Archiv
|
|
||||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
|
||||||
$zipArchive = [System.IO.Compression.ZipFile]::Open($zipFile, 'Create')
|
|
||||||
|
|
||||||
foreach ($file in $files) {
|
|
||||||
# Absolute Pfade erstellen
|
|
||||||
$filePath = (Resolve-Path $file).Path
|
|
||||||
[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zipArchive, $filePath, $file)
|
|
||||||
}
|
|
||||||
|
|
||||||
$zipArchive.Dispose()
|
|
||||||
Write-Host "ZIP-Datei erstellt: $zipFile"
|
|
||||||
Reference in New Issue
Block a user