mymomo
Goto Top

Aktualisierungen der letzten 2 Wochen eines Verzeichnisses als Textdatei speichern?

Moin!

Derzeit ist es so, dass ich Laufwerke oder einzelne Verzeichnisse per /TREE und Powershell täglich auslese und in eine Textdatei schreibe.

Nun würde ich es gerne dahingehend weiterentwickeln, dass die Änderungen der letzten 2 Wochen in einer gesonderten Textdatei dokumentiert werden. Sind 2 Wochen rum, fallen Daten die vor 14 Tagen reingeschrieben worden sind wieder raus.
Soweit der Plan.

Ist dies " auf einfache Weise" realisiertbar?

Ich schätze spätestens mit einer Datenbank wäre das realisierbar (welche Notfalls auch auf dem Server auf dem dies realisiert werden soll verfügbar gemacht werden könnte).
Da ich in Sachen Programmierung noch sehr unerfahren bin, würde das zwar sicherlich für mich an ein Mammutprojekt grenzen, aber da ich mich ohnehin in Sachen Programmierung weiterbilden möchte, wäre das sicherlich auch hilfreich.

Hat da wer ein paar Tipps für mich?

Content-Key: 217592

Url: https://administrator.de/contentid/217592

Printed on: April 16, 2024 at 22:04 o'clock

Member: AnonBorg
AnonBorg Sep 23, 2013 at 14:36:21 (UTC)
Goto Top
Hallo mymomo,

warum orientierst Du Dich nicht am create oder modified Date der Dateien ?
dir /T:C /T:W /S /Q

Ich würde das mittels Auto-IT und der Funktion "FileGetTime" realisieren.
- Rekursiv die Verzeichnissese durchsuchen,
- Dateienamen, die vor <14 Tagen created wurden in eine Datei schreiben
- das ganze nächtlich (Scheduler) laufen lassen.
So hast Du täglich eine Datei aller Files die nicht älter als 14 Tage sind.

Mein Anwendungsfall war, Files ( in einem Verz.), die älter als 7 Tage sind, zu löschen.

René
Member: mymomo
mymomo Sep 23, 2013 at 20:01:14 (UTC)
Goto Top
hey rené...
das klingt interessant und einleuchtend... natürlich kann ich mich auch am createdatum orientieren, da hast du recht...
wie ich schon schrieb, ich bin noch keine leuchte im bereich der entwicklung und bilde mich da gerade erst weiter... da ich zuerst mit sql anfange zu lernen, weil man das ja nun einmal weiß gott wo benötigt, war mein erster gedanke dies auch über eine datenbank laufen zu lassen^^..

auto-it und FileGetTime - alles klar... da schaue ich mal nach...
wenn ich überhaupt nicht weiterkomme, macht es dir hoffentlich nichts aus dich dazu noch einmal zu rate zu ziehen?

zwar möchte ich es selbst lernen und eigene wege finden dies umzusetzen, doch würde es dir vielleicht etwas ausmachen mir dein script mal zur verfügung zu stellen? im prinzip macht es ja nun wirklich nicht viel anderes als mein vorhaben...

grüße
Member: AnonBorg
AnonBorg Sep 24, 2013 updated at 09:45:02 (UTC)
Goto Top
Hallo mymomo,
schick mir doch bitte eine PM mit Deiner Mailadresse, dann sende ich Dir das Script.
René

Edit: Script ist fertig. Drei Parameter übergeben! ( Tage Pfad Dateiname)
Member: 5t8d1e
5t8d1e Sep 25, 2013 at 20:58:59 (UTC)
Goto Top
Ahoi René,

hier ein quick and dirty script (Powershell). Wenn ich richtig verstanden habe willst du eine Übersicht über alle Dateien und eine Übersicht mit den Dateien die die letzten 14 Tage geändert wurden.

#Verzeichnis was durchsucht wird
[string]$mySearchPath='z:'  
#jetzt minus 14 Tage
[datetime]$myDate=(get-date).adddays(-14)
#csv zum Speichern des Ergebnisses
[string]$myCsv1='F:\temp\all_files.csv'  
[string]$myCsv2='F:\temp\changes_last_14_days.csv'  
#Dateien die in den letzten 14 Tage geändert wurden 
[array]$myResults = Get-ChildItem -Path $mySearchPath -Recurse | select Fullname,LastWriteTime
#gesamtes Ergebnis exportieren
$myResults | Export-Csv -Path $myCSV1 -Delimiter ";" -NoTypeInformation -Force  
#Dateien die innerhalb der letzten x Tage geändert wurden
$myResults | where { $_.LastWriteTime -ge $mydate } | Export-Csv -Path $myCSV2 -Delimiter ";" -NoTypeInformation -Force  


Der Torsten wars!
Member: mymomo
mymomo Sep 26, 2013 at 16:29:09 (UTC)
Goto Top
das klappt sehr gut, danke torsten...
gar nicht so schwer wie ich es mir vorgestellt habe...