Initial
This commit is contained in:
		
							parent
							
								
									faf2be8238
								
							
						
					
					
						commit
						ea469ba167
					
				
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							| @ -1,2 +1,12 @@ | ||||
| # win-cleanoldfiles | ||||
| # Automatisches löschen von Dateien und Ordnern | ||||
| 
 | ||||
| Dieses PowerShell-Skript dient dazu, Dateien und Verzeichnisse in einem angegebenen Verzeichnis zu löschen, die älter als ein bestimmter Zeitraum sind. Es ermöglicht eine effiziente Bereinigung von nicht mehr benötigten Daten. | ||||
| Das Skript ist nützlich für die Wartung von Speicherplatz und die Aufrechterhaltung einer sauberen Verzeichnisstruktur. | ||||
| 
 | ||||
| ## Anzupassende Variablen: | ||||
| 
 | ||||
| **$Verzeichnis** = "D:\Pfad\zum\Verzeichnis" | ||||
| 
 | ||||
| **$ZeitrahmenInTagen** = 365 | ||||
| 
 | ||||
| **$LogPfad**  = "C:\logs\CleanOldFiles.log" | ||||
							
								
								
									
										55
									
								
								WIN-CleanOldFiles.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								WIN-CleanOldFiles.ps1
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | ||||
| # Script Name:  WIN-CleanOldFiles.ps1 | ||||
| # Beschreibung: Löscht Dateien und Verzeichnisse, die älter als ein definierter Zeitraum sind | ||||
| # Aufruf:       - | ||||
| # Autor:        Patrick Asmus | ||||
| # Web:          https://www.media-techport.de | ||||
| # Git-Reposit.: https://git.media-techport.de/scriptos/win-cleanoldfiles.git | ||||
| # Version:      1.0 | ||||
| # Datum:        08.11.2023 | ||||
| # Modifikation: Initial | ||||
| ##################################################### | ||||
| 
 | ||||
| # Variablen | ||||
| $Verzeichnis = "D:\temp" | ||||
| $ZeitrahmenInTagen = 730 | ||||
| $LogPfad = "C:\logs\CleanOldFiles.log" | ||||
| 
 | ||||
| # Berechnung Startdatum des Zeitrahmens | ||||
| $Startdatum = (Get-Date).AddDays(-$ZeitrahmenInTagen) | ||||
| $GelöschtdurchScriptAm = Get-Date | ||||
| 
 | ||||
| # Funktion zur Formatierung des Datums im deutschen Stil | ||||
| function Format-DeutschesDatum ([datetime] $date) { | ||||
|     return $date.ToString("dd.MM.yyyy") | ||||
| } | ||||
| 
 | ||||
| # Lösche Dateien und Verzeichnisse, die älter als der angegebene Zeitraum sind | ||||
| $GelöschteDateien = @() | ||||
| $GelöschteVerzeichnisse = @() | ||||
| 
 | ||||
| Get-ChildItem -Path $Verzeichnis -Recurse | ForEach-Object { | ||||
|     if ($_.LastWriteTime -lt $Startdatum) { | ||||
|         if ($_.PSIsContainer) { | ||||
|             $_ | Remove-Item -Force -Recurse | ||||
|             $GelöschteVerzeichnisse += $_.FullName | ||||
|             $LogMeldung = "Ordner gelöscht am: $(Format-DeutschesDatum $GelöschtdurchScriptAm) | $($_.FullName)" | ||||
|             Write-Output $LogMeldung | ||||
|             $LogMeldung | Out-File -Append -FilePath $LogPfad | ||||
|         } else { | ||||
|             $_ | Remove-Item -Force | ||||
|             $GelöschteDateien += $_.FullName | ||||
|             $LogMeldung = "Datei gelöscht am: $(Format-DeutschesDatum $GelöschtdurchScriptAm) | Letzte Änderung: $(Format-DeutschesDatum $_.LastWriteTime) | $($_.FullName)" | ||||
|             Write-Output $LogMeldung | ||||
|             $LogMeldung | Out-File -Append -FilePath $LogPfad | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| # Überprüfe, ob das Verzeichnis leer ist, und entferne es gegebenenfalls | ||||
| if ((Get-ChildItem -Path $Verzeichnis | Measure-Object).Count -eq 0) { | ||||
|     Remove-Item -Path $Verzeichnis -Force -Recurse | ||||
|     $GelöschteVerzeichnisse += $Verzeichnis | ||||
|     $LogMeldung = "Ordner gelöscht am: $(Format-DeutschesDatum $GelöschtdurchScriptAm) | $Verzeichnis" | ||||
|     Write-Output $LogMeldung | ||||
|     $LogMeldung | Out-File -Append -FilePath $LogPfad | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user