Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Löschen von bestimmten Dateien ( z.B. Endung .mp3 .wma .tmp .log), die älter als n Tage sind.

Frage Entwicklung

Mitglied: greenhorn101

greenhorn101 (Level 1) - Jetzt verbinden

25.01.2011, aktualisiert 28.01.2011, 6425 Aufrufe, 1 Kommentar

Skript für Powershell v1.0

Hallo zusammen,
ich bin neu eingestiegen bei PowerShell und gerade dabei mein Wissen aufzubauen.

Folgendes Problem habe ich: Ich will gewisse Daten mit verschiedenen Endungen bzw. verschiedenen Teilstrings des Namens der Dateien löschen
Endungen: *.temp , *.log , *.txt .mp3. wma etc. Teilstring: blabla* , blablabla* lied1* lied2* etc.

Wie man nach n Tagen löscht habe ich wie folgt gemacht:
Dabei habe ich die Tage auf 10 gesetzt, dass funktionier auch, aber es löscht ja alle Dateien, auch die, die ich behalten will, die älter als zehn Tage sind.

Get-Childitem -recurse E:\test\$j | Where-Object {($Today-$_.LastWriteTime).Days -gt 10} | Remove-Item

Das ganze habe ich als Foreach-Schleife geschrieben, die zwei Arrays besitzt, zum einen die versch. Ordner in denen nach den Daten gesucht werden soll, zum anderen
die versch. Teilstrings und Endungen der Daten.
Mein Problem ist, dass wenn ich beide arrays zu einem Verbinde trotzdem alle alten Dateien gelöscht werden, obwohl ich vorgebe, dass ich nur bestimmte gelöscht haben will, die älter als zehn Tage sind.

Kann mir bitte jemand weiterhelfen

Grüße greenhorn101
Mitglied: greenhorn101
28.01.2011 um 11:56 Uhr
Hallo zusammen,

nach langem hin und her habe ich endlich den Sprung geschafft, das Skript so zum laufen zu bringen wie ich das wollte.

Alt:

Get-Childitem -recurse E:\test\$j | Where-Object {($Today-$_.LastWriteTime).Days -gt 10} | Remove-Item

$j stellt das zusammen gesetzte Array dar das aus folgenden Bestand.
$h stellt dabei die jeweiligen Pfade der Ordner da und $i die zu löschenden Dateien
Im alten Befehl habe ich versucht den Pfad und die zu löschenden Dateien in einem Array zusammen zu fassen, was aber nicht den gewünschten Erfolg erzielte.

Neu:

Get-Childitem -recurse E:\test\$h -include $i | Where-Object {($Today-$_.LastWriteTime).Days -gt 10} | Remove-Item

Man muss also darauf achten, dass man das -include nicht ans Ende setzt, nach Remove-item, sondern direkt nach dem Pfad der zu löschenden Dateien, dann werden auch wirklich nur die Dateien gelöscht, die älter als 10 Tage sind und eben die entsprechenden Eigenschaften tragen.
Alle anderen Dateien die älter als 10 Tage sind, und nicht mit einer Eigenschaft von $i übereinstimmen werden nicht gelöscht.

Nun läuft das Skript ohne Probleme!!!
Ich hoffe ich kann dem einen oder anderen damit auch helfen

grüße
greenhorn101
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Batch & Shell
gelöst Löschen von Dateien nach bestimmten Zeitmuster (8)

Frage von NetzwerkDude zum Thema Batch & Shell ...

Batch & Shell
Fileserver Daten älter als 14 Tage löschen! (11)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
Dateien löschen mit Forfiles, welche älter als x Tage sind (4)

Frage von kellbidden zum Thema Windows Server ...

Neue Wissensbeiträge
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
gelöst Freidach Beitrag (40)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Windows 7
gelöst SSD - Win7 Lags (20)

Frage von ph5555 zum Thema Windows 7 ...

Firewall
gelöst Firewall Firmeneimsatz (18)

Frage von wiesi200 zum Thema Firewall ...