Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 6411 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
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (26)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (19)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
Raid 1 2 SSD mit Windows Server 2016 (17)

Frage von jaywee zum Thema Festplatten, SSD, Raid ...

Voice over IP
Über Fritzfax over IP gehen nur einige Faxe (12)

Frage von shearer9 zum Thema Voice over IP ...