Jump to content

Powershell Datei vergleichen und löschen.


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hey,

ich probiere einen Ordner mit Backupdateien anhand des Namens der Datei zu löschen.
Das ganze sieht bis jetzt wie folgt aus:

 

cd D:\Datapool\Backup

 

if ("Datapool2013-12-26-01-00-12.mdb" -lt "Datapool2014-01-24-07-39-09.mdb")

{

Remove-Item

}


Diese Idee ist leider noch nicht ganz durchdacht weil ich noch Anfänger im Bereich des Programmieren in Powershell bin...

Hat wer eine Idee die mir weiterhelfen könnte... :)

Danke

Geschrieben

Na klar entschuldige wenn das ein bisschen zu Allgemein war :)

Bin jetzt schon so weit das es jetzt ziemlich anders aussieht...
Es soll halt eine Datei Gebackuped werden. Das läuft auch schon. Davor soll aber in den Backup Ordner geguckt werden, welche Dateien älter als 30 tage sind und dieses anhand des Timestamps im Dokument löschen.

So SIeht es dann aus:

 

param(

[string]$file2save = "D:\Datapool\Datapool .mdb",

[string]$savePath = "D:\Datapool\Backup\Datapool$timestamp.mdb",

[string]$deleteBakAfterDays = (get-date -f yyyy-MM-dd-HH-mm-ss).adddays(-10),

[string]$adddays = '.adddays(-10)'

)

cls

[

string]$timestamp = $(get-date -f yyyy-MM-dd-HH-mm-ss)

 

#Anlegen der Variable Today zur bestimmung des Datums

$Today = Get-Date -format d

#Nimmt das Verzeichniss D:\Test und durchsucht es nach Daten, die älter als 30 Tage sind

Get-Childitem

 

 

"D:\Produktionsstoerungen\Backup" -recurse | Where-Object {(Get-ChildItem -Name) -gt ("Datapool"+$timestamp)}| Remove-Item

Get-Childitem "D:\Produktionsstoerungen\Backup" -recurse | Where-Object {(Get-name -gt $deleteBakAfterDays} | Remove-Item

#Kopiert von D:\Explorer.ps1 die Datei nach D:\Test\Explorer und vergibt ein Timestamp

$savePath

#Kopiert die Powershelldatei und ändert das Änderungsdatum aufs die aktuelle Zeit.

$file = copy-item $file2save $savePath

$date = Get-ChildItem $savePath

$date.LastWriteTime = (Get-Date)



Ich hoffe das ich jetzt nicht noch mehr verwirrt habe.

Geschrieben

Na klar entschuldige wenn das ein bisschen zu Allgemein war :)

 

Bin jetzt schon so weit das es jetzt ziemlich anders aussieht...

Es soll halt eine Datei Gebackuped werden. Das läuft auch schon. Davor soll aber in den Backup Ordner geguckt werden, welche Dateien älter als 30 tage sind und dieses anhand des Timestamps im Dokument löschen.

 

Wieso so kompliziert?

Get-ChildItem $env:temp | ? { $_.LastAccessTime -lt ((get-date).adddays(-30)) } | remove-item

  • Like 1
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...