Dateiliste "Letztes Zugriffsdatum kleiner (Datum)" erstellen
Hallo zusammen!
Der Befehl (innerhalb eines größeren Batch-Skriptes)
liefert eine blitzsaubere Dateiliste nach diesem Muster
D:\Pfad\Datei-06.wav
D:\Pfad\Subdir\Datei-13.mp3
D:\Pfad\Subsubdir\Datei-52.aac
...
usw.
Nun soll als zusätzliches Auswahlkriterium ein bestimmtes "Letztes Zugriffsdatum" dazukommen, und zwar "Letztes Zugriffsdatum -kleiner als- [Datum]", so daß dann NUR die betreffenden Dateien schlußendlich in der dir.txt landen.
Noch mal anders formuliert: Liste alle Dateien, deren "Datum des letzten Zugriffs" älter als [Datum] ist.
Bei DIR gibt es ja diesen Parameter: dir /t[[:] <timefield>
der aber nur eine Sortierung der jeweils gewünschten Datumsstempel vornimmt, scheidet also aus.
Eine Möglichkeit wäre der FileListCreator, der jedoch nur per GUI arbeitet, zwar mit Hilfe von AHK duraus das gewünschte Ergebnis bringen kann, was aber letztlich doch recht umständlich ist. Auch der Total Commander kann das mit diesem tc-plugin, was aber natürlich nicht skriptfähig ist.
Es geht sicher auch mit diesem Befehl aus der PowerShell (hab ich im Web gefunden):
...aber ich weiß mangels PowerShell-Kenntnisse nicht, wie ich das mit meiner ursprünglichen dir-Zeile verknüpfen soll.
Kann mir deshalb bitte jemand mit einem pfiffigen Skript weiterhelfen, das zusammen mit diesem dir-Befehl das gewünschte Ergebnis liefert?
Oder ist zu "dir" eine Alternative bekannt, die das bereits onboard hat?
Schönen Dank!
Artemis
Der Befehl (innerhalb eines größeren Batch-Skriptes)
dir *.wav *.mp3 *.aac *.ac3 *.m4a /A-D /S /OGN /B > dir.txt
D:\Pfad\Datei-06.wav
D:\Pfad\Subdir\Datei-13.mp3
D:\Pfad\Subsubdir\Datei-52.aac
...
usw.
Nun soll als zusätzliches Auswahlkriterium ein bestimmtes "Letztes Zugriffsdatum" dazukommen, und zwar "Letztes Zugriffsdatum -kleiner als- [Datum]", so daß dann NUR die betreffenden Dateien schlußendlich in der dir.txt landen.
Noch mal anders formuliert: Liste alle Dateien, deren "Datum des letzten Zugriffs" älter als [Datum] ist.
Bei DIR gibt es ja diesen Parameter: dir /t[[:] <timefield>
der aber nur eine Sortierung der jeweils gewünschten Datumsstempel vornimmt, scheidet also aus.
Eine Möglichkeit wäre der FileListCreator, der jedoch nur per GUI arbeitet, zwar mit Hilfe von AHK duraus das gewünschte Ergebnis bringen kann, was aber letztlich doch recht umständlich ist. Auch der Total Commander kann das mit diesem tc-plugin, was aber natürlich nicht skriptfähig ist.
Es geht sicher auch mit diesem Befehl aus der PowerShell (hab ich im Web gefunden):
Get-ChildItem | Where-Object {$_.LastWriteTime -st (get-Date 10.05.2021)}
Kann mir deshalb bitte jemand mit einem pfiffigen Skript weiterhelfen, das zusammen mit diesem dir-Befehl das gewünschte Ergebnis liefert?
Oder ist zu "dir" eine Alternative bekannt, die das bereits onboard hat?
Schönen Dank!
Artemis
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2118959169
Url: https://administrator.de/contentid/2118959169
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
1 Kommentar
Moin,
ich würde die Powershell bevorzugen
Du bist auf dem richtigen Weg. für die Endungen kannst du das wie folgt umsetzen:
Hinweise:
Die übrigen Parameter deines
Gruß
em-pie
ich würde die Powershell bevorzugen
Du bist auf dem richtigen Weg. für die Endungen kannst du das wie folgt umsetzen:
$myFolder = "C:\Some\Crazy\Files\*"
$Include = @("*.trn","*.bak","*.diff")
Get-ChildItem -Path $myFolder -Include $Include | Where-Object {$_.LastWriteTime -st (get-Date 10.05.2021)} | Out-File -FilePath dir.txt
Hinweise:
- Du musst bei der Verwendung von Include im Pfad ein * verwenden: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
- LastWriteTime ist aber nicht der Zeitstempel des letzten Zugriffes, sondern wann die Datei das letzte Mal beschrieben wurde.
- Für die Ausgabe in eine Textdatei muss du Out-File nutzen. Oder, wenn du es per CSV haben möchtest, kannst du auch export-CSV nutzen
Die übrigen Parameter deines
dir
-Befehls musst du dann mal selbst erarbeiten Gruß
em-pie