wirdnoch
Goto Top

Dateien eines bestimmten Erstelldatums filtern bzw. kopieren

Gibt es die Möglichkeit, in einem Ordner eines Windows-PCs über einen Copy-Befehl nur die Dateien eines bestimmten Erstelldatums in einen anderen Ordner zu kopieren?
Es geht nicht um das Änderungsdatum sondern tatsächlich um das Erstelldatum der Dateien.

Content-ID: 672086

Url: https://administrator.de/forum/dateien-eines-bestimmten-erstelldatums-filtern-bzw-kopieren-672086.html

Ausgedruckt am: 21.03.2025 um 17:03 Uhr

mirdochegal
mirdochegal 21.03.2025 aktualisiert um 10:43:05 Uhr
Goto Top
Kein Hallo,

ungetestet (aber sinnhaft) - vorher Backup anlegen!

*.ps1
$source = "C:\Pfad\zum\Quellordner"  
$destination = "C:\Pfad\zum\Zielordner"  
$dateFilter = (Get-Date "2024-03-21").Date  # Ersetze das Datum mit deinem gewünschten Erstelldatum  

Get-ChildItem -Path $source -File | Where-Object { $_.CreationTime.Date -eq $dateFilter } | Copy-Item -Destination $destination

Kein Gruß
em-pie
em-pie 21.03.2025 aktualisiert um 10:54:20 Uhr
Goto Top
Moin,
$RefDate = '21.03.2025'  
$srcFolder = 'C:\source'  
$dstFolder = 'C:\destination\'  

$creationDate = [datetime]::parseexact($RefDate, 'dd.MM.yyyy', $null).ToString('dd.MM.yyyy')  
Get-ChildItem -Path $srcFolder | 
    Where-Object {(($_.CreationTime).ToString('dd.MM.yyyy')) -eq "$creationDate"} |   
    Copy-Item -Destination $dstFolder

Edit: zu langsam face-big-smile
Crusher79
Crusher79 21.03.2025 aktualisiert um 13:39:00 Uhr
Goto Top
ToString ist eig. unnötig.
$Diffobj = $(Get-Date) - $(Get-Date).AddDays(-3)
$Diffobj | select *

Ticks             : 2592000000000
Days              : 3
Hours             : 0
Milliseconds      : 0
Minutes           : 0
Seconds           : 0
TotalDays         : 3
TotalHours        : 72
TotalMilliseconds : 259200000
TotalMinutes      : 4320
TotalSeconds      : 259200

Get-ChildItem -Path C:\ps | Where-Object { $_.CreationTime -gt  $(Get-Date).AddDays(-3) }

Wenn man es als Objekt belässt, kann man direkt die 2 vergleichen.

Strings machen da meist Probleme, oder berauben einen des Vergleiches wie oben.

$creationDate = [datetime]::parseexact($RefDate, 'dd.MM.yyyy', $null)  

Reicht, bzw. sorgt dafür, dass datetime auch datetime bleibt.

Oben sieht man in der Ausgabe was man beim Vergleich 2er Zeit-Objekte so alles rausholen kann. face-wink