memob1986 10 Geschrieben 27. April 2010 Melden Teilen Geschrieben 27. April 2010 Hallo, kann ich über eine Batch (oder irgendwas anderes) in einem Laufwerk alle Dateien die z.B. 3 Jahre nicht geändert wurden anzeigen lassen? wenn ja welchen Befehl?? Ich hab ein Dateiserver, der müsste mal bereinigt werden :) Danke für eure Hilfe MFG Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 27. April 2010 Melden Teilen Geschrieben 27. April 2010 Ja. Aber: - AccessDate ist sinnvoller. Datei wurde vor 3 Jahren geändert aber jede Woche einmal gelesen. - Löschen ist evtl. zu viel. Ich würde mir gedanken über ein HSM System machen. Mit Powershell: Get-ChildItem d:\Daten | ? { ($_.LastAccessTime -lt (Get-Date).AddYears(-3)) } | % { remove-item $_.Fullname } Zitieren Link zu diesem Kommentar
memob1986 10 Geschrieben 27. April 2010 Autor Melden Teilen Geschrieben 27. April 2010 danke für den code. Ich möchte gerne das die Dateiennamen mit Pfad in einer Textdatei gespeichert werden, ohne die Datei zu löschen, wie wäre dann der code dazu? Meinst du mit HSM System, so eine Art Software wie Symantec Vault? Gibts auch opensource? Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 27. April 2010 Melden Teilen Geschrieben 27. April 2010 Get-ChildItem d:\Daten | ? { ($_.LastAccessTime -lt (Get-Date).AddYears(-3)) } | % { out-file $_.Fullname -append } Ja. Symantec Vault ist solch ein Programm. Wir nutzen Commvault Simpana. OpenSource war ein guter Witz. Es ist ja nicht nur die Software, dazu gehört eine entsprechende Infrastruktur. Zitieren Link zu diesem Kommentar
memob1986 10 Geschrieben 28. April 2010 Autor Melden Teilen Geschrieben 28. April 2010 Get-ChildItem d:\Daten | ? { ($_.LastAccessTime -lt (Get-Date).AddYears(-3)) } | % { out-file $_.Fullname -append } Ich hab eine Frage..ich bin kein Programierer ...was muss ich denn noch abändern außer dem Pfad? Zitieren Link zu diesem Kommentar
humpi 11 Geschrieben 28. April 2010 Melden Teilen Geschrieben 28. April 2010 Hallo, Logparser kann das. Beispiel: "C:\Programme\Log Parser 2.2\logparser.exe" -i:FS -o:Datagrid "SELECT Path,Name,Size,CreationTime,LastAccessTime,LastWriteTime FROM c:\temp\*.*" Delage32 bietet auch diese Möglichkeit. Beispiel: DelAge32 C:\irgend\wo\*.* 100 /recurse /preview Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 28. April 2010 Melden Teilen Geschrieben 28. April 2010 Get-ChildItem d:\Daten | ? { ($_.LastAccessTime -lt (Get-Date).AddYears(-3)) } | % { out-file $_.Fullname -append } Ich hab eine Frage..ich bin kein Programierer ...was muss ich denn noch abändern außer dem Pfad? Die zeit, wenn du nicht nach 3 Jahren alten Dateien suchst. Ich hab noch was vergessen: Get-ChildItem d:\Daten | ? { ($_.LastAccessTime -lt (Get-Date).AddYears(-3)) } | % { $_.Fullname | out-file c:\alte-dateien.txt -append } Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 1. Mai 2010 Melden Teilen Geschrieben 1. Mai 2010 Hallo Memob, Hier ein PS-Skript, was vielleicht für dich ein bischen übersichtlicher ist, als der Einzeiler oben $path="c:\temp" #ein paar Beispiele, den Zeitraum zu definieren $2MinutenAlt=(Get-Date).AddMinutes(-2) $1TagAlt = (Get-Date).AddDays(-1) $6MonateAlt=(Get-Date).AddMonths(-6) $3JahreAlt=(Get-Date).AddYears(-3) $DateiAlter=$3JahreAlt # Zuweisung, die benutzt wird #Ab hier nichts mehr ändern Foreach ($item in (dir –recurse $path)) { If (!( $item.PSIsContainer)) { If ($item.LastWriteTime –lt $DateiAlter) { Write-output "$($item.FullName), $($item.LastWriteTime), $($item.Length)" } } } Laufen lassen kannst du es in der PS-Entwickungsumgebung Powershell_ise.exe cu blub Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 1. Mai 2010 Melden Teilen Geschrieben 1. Mai 2010 .oO(Was ist an meinem Script unübersichtlich?) Btw. wenn man nach der Access Time schaut wird diese gleichzeitig geändert. Das sollte man bedenken, wenn man das über die Access Time macht. Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 1. Mai 2010 Melden Teilen Geschrieben 1. Mai 2010 .oO(Was ist an meinem Script unübersichtlich?) Werte wie den Pfadnamen oder das Dateialter mitten im Skript oder im Befehl fest zu verdrahten und nicht zu parametrisieren finde ich fehleranfällig und unübersichtlich. Ist aber mein persönlicher Geschmack. Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 1. Mai 2010 Melden Teilen Geschrieben 1. Mai 2010 Das schon, aber wenns nur sowas kleines ist reicht eine Zeile. Bei größeren Scripte (wenn die Zeile sich auf 4-5 Zeilen erstreckt) strukturier ich das ganze auch sauberer. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.