Remove Sftp Files Older Than
Zuletzt geändert: 14.03.2026 05:56

Remove-SftpFilesOlderThan #

ÜBERSICHT #

Löscht bestimmte Dateien aus einem SFTP-Verzeichnis, die älter als eine bestimmte Anzahl Tage sind. Unterstützt -WhatIf und -Confirm zur Simulation und Sicherheitsabfrage.

SYNTAX #

Remove-SftpFilesOlderThan [-Partner] <hashtable> [-PartnerName] <string> [-DataPath] <string>
    [[-Extension] <string>] [[-Days] <int>] [-UseBaseDateFromFile] [[-MinFiles] <int>]

BESCHREIBUNG #

Kann direkt mit einem Partnerobjekt oder über Partnername zzgl. DataPath arbeiten. Es wird nur nach dem Datum (yyyy-MM-dd) geprüft, sodass alle Dateien eines Tages vollständig gelöscht werden. Zusätzlich wird nach einer bestimmten Dateiendung gefiltert. Als Basisdatum kann wahlweise das aktuelle Datum oder das Datum der neuesten Datei am SFTP dienen. Optional kann festgelegt werden, dass immer mindestens eine bestimmte Anzahl Dateien im Verzeichnis verbleibt, unabhängig vom Alter.

PARAMETER #

-Partner #

Type: hashtable

Partnerobjekt aus der JsonDb.

-PartnerName #

Type: string

Name des Partners.

-DataPath #

Type: string

Pfad zur JsonDb, wenn PartnerName verwendet wird.

-Extension #

Type: string
Default: '.done'

Dateiendung, Default ‘.done’.

-Days #

Type: int
Default: 14

Alter in Tagen, Default 14.

-UseBaseDateFromFile #

Type: switch

Wenn gesetzt, wird das Datum der neuesten Datei als Basis genommen, andernfalls das aktuelle Datum.

-MinFiles #

Type: int
Default: 0

Minimale Anzahl Dateien, die im Verzeichnis verbleiben sollen. Default 0 (= deaktiviert).

AUSGABEN #

System.Int32

Anzahl gelöschter Dateien

BEISPIELE #

# Mit Partnerobjekt, aktuelles Datum als Basis
$partner = Get-ScheduledPartners -JsonDb 'database\partner.json' | Where-Object partnerName -eq 'MARKANT'
Remove-SftpFilesOlderThan -Partner $partner
# Mit Partnername, neueste Datei als Basis, Simulation
Remove-SftpFilesOlderThan -PartnerName 'MARKANT' -DataPath 'database' -UseBaseDateFromFile -WhatIf

HINWEISE #

WhatIf/Confirm:

  • Mit -WhatIf werden keine Dateien gelöscht, sondern nur angezeigt, welche gelöscht würden („Simulation“).
  • Mit -Confirm fragt die Funktion vor jeder Löschoperation nach Bestätigung.
  • Ohne beide Parameter wird direkt gelöscht, sofern die Kriterien erfüllt sind.
  • Über ConfirmImpact = ‘High’ wird das Standardverhalten von PowerShell genutzt: bei gesetztem $ConfirmPreference kann auch ohne explizites -Confirm eine Abfrage erfolgen.