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.
Es geht nicht um das Änderungsdatum sondern tatsächlich um das Erstelldatum der Dateien.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
3 Kommentare
Neuester Kommentar
Kein Hallo,
ungetestet (aber sinnhaft) - vorher Backup anlegen!
*.ps1
Kein Gruß
ungetestet (aber sinnhaft) - vorher Backup anlegen!
*.ps1
Quelle: ChatGPT KI
$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ß
Moin,
Edit: zu langsam
$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
ToString ist eig. unnötig.
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.
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.
$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.