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, 6343 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 ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Viren und Trojaner
Erpressungs-Trojaner Locky markiert Geisel-Dateien mit .aesir-Endung

Link von VGem-e zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

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

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...