stefanmuc
Goto Top

Powershell Get-ChildItem,Where-Object: Wie Exclude-Ordner,Notlike definieren?

Hallo,

ich hätte gerne eine Liste aller Dateien, die ab dem 8.11.24 in Laufwerk c:\ geschrieben wurden, jedoch NICHT in den Ordnern (und darunter) der Pfade "c:\Windows\*" sowie "C:\Program Files (x86)\*":

Die Exclude-Option bei Get-ChildItem wird leider nicht berücksichtigt:
Get-ChildItem -Path C:\ -Recurse -Exclude ('C:\Windows\*','C:\Program Files (x86)\*') -File | Where-Object { $_.LastWriteTime -gt '2024-11-07' }  

Auch der Ausschluss im Where-Object-Bereich klappt nicht:
Get-ChildItem -Path C:\ -Recurse -File | Where-Object { $_.LastWriteTime -gt '2024-11-07' } | Where-Object { $_.Fullname -notlike ('C:\Windows\*','C:\Program Files (x86)\*') } | Foreach-Object { $_.Fullname }  

Was mache ich falsch?

Content-ID: 669727

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

Printed on: December 5, 2024 at 17:12 o'clock

Oskar44
Solution Oskar44 Nov 24, 2024 updated at 11:45:04 (UTC)
Goto Top
$d = get-date '2024-11-08'  
Get-ChildItem -Path C:\ -Recurse -File -EA SilentlyContinue | ?{$_.LastWriteTime -ge $d -and $_.Fullname -notmatch '^C:\\(Windows|Program Files \(x86\))\\'} | % Fullname  

Oder andere Methode
$d = get-date '2024-11-08'  
Get-ChildItem -Path C:\ -Directory -Exclude "Windows","Program Files (x86)" | Get-ChildItem -Recurse -File -EA SilentlyContinue | ?{ $_.LastWriteTime -ge $d} | % Fullname  
StefanMUC
StefanMUC Nov 24, 2024 at 13:02:28 (UTC)
Goto Top
So klappt es, danke!