emeriks
Goto Top

MS Tool "forfiles"

Hi,
verstehe ich es bloß nicht oder ist die Option "/D +dd" des MS Tools "forfiles" total sinnfrei?

/D.....Datum......Wählt Dateien mit einem Änderungsdatum größer oder gleich (+), oder weniger oder gleich (-), das angegebene Datum mit Format dd.MM.yyyy"; oder wählt Dateien, dessen letztes Änderungsdatum größer oder gleich (+) dem heutigen Datum plus "tt" Tagen oder oder weniger oder gleich (-) heute minus "tt" Tagen. Gültige Werte für "tt" sind Zahlen zwischen 0 und 32768. Ohne Angabe wird "+" standardmäßig verwendet.

Wenn ich mit forfiles alle Dateien haben will, welche innerhalb der letzten 30 Tage geändert wurden, wie gehe ich da vor?

Der von mir fett markierte Teil beschreibt ein Datum in der Zukunft. Der Teil mit dem (-) liefert nur Dateien mit einem Datum kleiner als "heute -x Tage", also welche nicht innerhalb der letzten x Tage geändert wurden.

E.

Content-Key: 328588

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

Ausgedruckt am: 19.03.2024 um 09:03 Uhr

Mitglied: 132272
132272 06.02.2017 aktualisiert um 16:42:31 Uhr
Goto Top
Beispiele:

back-to-topAlle Dateien die älter als dem Datum (Heute-10) Tage sind (<=27.01.2017)
forfiles /D -10
back-to-topAlle Dateien die nach Heute+10 Tage bearbeitet wurden (>= 16.02.2017)
forfiles /D 10
back-to-topAlle Dateien die älter/gleich dem 04.02.2017 sind (<=04.02.2017)
forfiles /D -04.02.2017
back-to-topAlle Dateien die neuer/gleich dem 04.02.2017 sind (>=04.02.2017)
forfiles /D 04.02.2017


Für dein Vorhaben wäre hier nur die Angabe eines Datums passend
forfiles /D 07.01.2017
passend, jedoch inklusive Dateien die ein Datum in der Zukunft haben (warum auch immer das vorkommen mag).

Ich würde Powershell empfehlen
gci 'C:\Ordner' -File | ?{$_.LastWriteTime -ge (get-date).AddDays(-30)}  
Gruß
Mitglied: emeriks
emeriks 07.02.2017 um 08:31:48 Uhr
Goto Top
Für dein Vorhaben wäre hier nur die Angabe eines Datums passend
> forfiles /D 07.01.2017
> 
passend, jedoch inklusive Dateien die ein Datum in der Zukunft haben (warum auch immer das vorkommen mag).
Nein. Wenn ich das in 30 Tagen erneut ausführe, dann sind das schon 60 Tage.
Ich meinte bewusst "innerhalb der letzten 30 Tage" und "seit dem 07.01.2017".

Ich würde Powershell empfehlen
Ja, ich weiß. Oder Vbscript.
Mir ging es speziell darum, ob ich diese Option von "forfiles" falsch verstanden habe. Aber offensichtlich nicht. Sie ist sinnfrei.
Mitglied: 132272
132272 07.02.2017 aktualisiert um 08:36:47 Uhr
Goto Top
Zitat von @emeriks:
Nein. Wenn ich das in 30 Tagen erneut ausführe, dann sind das schon 60 Tage.
Ja nee, das ist schon klar da musst du natürlich eine Routine davor setzen die das Datum in der Batch vorher berechnet, das ist problemlos möglich, sind aber in Batch diverse Zeilen mehr face-smile.