PowerShell-Script: Dateien löschen, die älter als X Tage sind

Nichts besonderes, ein kleines Script in PowerShell um Dateien mit einem gewissen Alter zu löschen. Kann darüber hinaus noch angepasst werden, ob nur Dateien und keine Ordner gelöscht werden sowie ob überhaupt die Unterordner durchsucht werden sollen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<# Script Configuration Start #>
[string]$Path = "C:\Users\Test\Desktop\"
[int]$Days = "7"
[bool]$Recursive = $true
[bool]$OnlyFiles = $false
<# Script Configuration End #>
 
Function RemoveRecursive{
 
Param(
    [parameter(Mandatory=$true)]
    [String]
    $Path,
    [parameter(Mandatory=$true)]
    [String]
    $Days,
    [parameter(Mandatory=$false)]
    [String]
    $Recursive,
    [parameter(Mandatory=$false)]
    [String]
    $OnlyFiles
)
 
## Building Arguments Start ##
if($Recursive -eq $true -and $OnlyFiles -eq $false)
{
    $Items = Get-ChildItem $Path -Recurse
}
if($Recursive -eq $true -and $OnlyFiles -eq $true)
{
    $Items = Get-ChildItem $Path -File -Recurse
}
if($Recursive -eq $false -and $OnlyFiles -eq $true)
{
    $Items = Get-ChildItem $Path -File
}
if($Recursive -eq $false -and $OnlyFiles -eq $false)
{
    $Items = Get-ChildItem $Path
}
## Building Arguments End ##
 
$Items | Where-Object {$_.CreationTime -lt (Get-Date.AddDays(-$Days)) } | Remove-Item -Force -Recurse -WhatIf
 
}
 
RemoveRecursive -Path $Path -Days $Days -OnlyFiles $OnlyFiles -Recursive $Recursive
Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.