dervolker
Goto Top

Forfiles findet nicht alles

Hallo zusammen,

ich suche auf einem Netzwerklaufwerk nach alten Dateien:

forfiles /P PFAD /D -01.01.2013 /S .....

Somit finde ich alle Dateien, die das letzte Mal vor dem 01.01.2013 bearbeitet wurden.

Leider nicht alle.
Es gibt einen Ordner "Anwender", der komplett ignoriert wird und in einem weiteren Ordner wird nichts gefunden.

Hat jemand eine Idee oder eine Alternative zu forfiles?

Fehler gibt es keine.

Vielen Dank,
Volker

Content-ID: 288313

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

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

122990
122990 13.11.2015 aktualisiert um 11:23:06 Uhr
Goto Top
Moin.
Zitat von @DerVolker:
Leider nicht alle.
Es gibt einen Ordner "Anwender", der komplett ignoriert wird und in einem weiteren Ordner wird nichts gefunden.
Fehlende Zugriffsrechte ?
Hat jemand eine Idee oder eine Alternative zu forfiles?
Powershell:
gci 'c:\Ordner' -recurse -Force | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date '01.01.2013')}  

Findest du hier aber bis zum Abwinken solche Alternativen, wenn du mal die Suchfunktion anwerfen würdest.

Gruß grexit
DerVolker
DerVolker 13.11.2015 um 11:24:46 Uhr
Goto Top
Hallo Grexit,

die Zugriffsrechte sind vorhanden.
Suche ich mit "forfiles" direkt im Ordner "Anwender" so wird forfiles fündig. Auch in den weiteren Unterordnern.
Gehe ich in den übergeordneten Ordner dann wieder nicht.

Mir ist das Verhalten absolut unklar.

Gruß,
Volker
122990
122990 13.11.2015 aktualisiert um 11:34:33 Uhr
Goto Top
Zitat von @DerVolker:
Gehe ich in den übergeordneten Ordner dann wieder nicht.

Mir ist das Verhalten absolut unklar.

Da fehlt dann bestimmt das Recht zu, Auflisten und das Durchsuchen von untergeordneten Ordnern auf diesem Oberordner, bzw. ist durch die Propagation auf den Oberordner eingeschränkt.

Aber mit PS hast du je eine wesentlich bessere Alternative als mit diesem altertümlichen forfiles ...
DerVolker
DerVolker 13.11.2015 um 13:33:24 Uhr
Goto Top
Hallo Grexit,

eine Rechteproblem kann ich ausschliessen.

Was meinst Du mit "PS"?

Wie bereits geschrieben: Ich bin auch für Alternativen dankbar.

Gruß aus Oldenburg,
Volker
122990
122990 13.11.2015 aktualisiert um 15:02:20 Uhr
Goto Top
Zitat von @DerVolker:
Was meinst Du mit "PS"?
Powershell
Wie bereits geschrieben: Ich bin auch für Alternativen dankbar.
Steht doch schon oben eine der Alternativen ... übersehen ??

Lässt sich problemlos auch direkt in einer Batch einbauen
powerhshell -Executionpolicy ByPass -Command "gci 'c:\Ordner' -recurse -Force | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date '01.01.2013')}"  
DerVolker
DerVolker 16.11.2015 um 09:56:24 Uhr
Goto Top
Hallo Grexit,

ja habe ich leider übersehen.
Leider (auf den ersten Blick) nicht so gut wie forfiles, da mir forfiles mehr informationen liefert.

Ich werde mich mal etwas mit PS beschäftigen.

Danke,
Volker
122990
122990 16.11.2015 aktualisiert um 11:19:28 Uhr
Goto Top
Zitat von @DerVolker:
ja habe ich leider übersehen.
Leider (auf den ersten Blick) nicht so gut wie forfiles, da mir forfiles mehr informationen liefert.
Da täuscht dich dein erster Blick aber gewaltig. Mit der Powershell geht um den Faktor 1000 mehr als mit dem antiken forfiles !! Und vor allem ist sie wesentlich schneller. Aktionen für jedes File lässt sich mit einer einfachen nachgeschalteten Foreach Schleife etc. pp. problemlos realisieren.
gci 'c:\Ordner' -recurse -Force | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date '01.01.2013')} | %{  
    # hier kommen die Aktionen für jedes File rein
    write-host $_.Fullname
}
Ich werde mich mal etwas mit PS beschäftigen.
Gut, wenn du Fragen hast, sag bescheid, wir liefern es dir frei Haus face-wink
DerVolker
DerVolker 05.12.2015 um 12:37:56 Uhr
Goto Top
Moin moin,

mir ist bekannt, das die PowerShell viel, sehr viel kann. Leider fehler mir aktuell die Zeit, um mich damit mehr zu beschäftigen.
Forfiles liefert mir folgende Tabelle

Dateiname, rel. Pfad zur Datei, Datum der letzten Änderung,

Kannst Du evtl. eine gutes Buch zum Selbststudium empfehlen?

Vielen Dank für die Unterstützung,

Volker

Achso: Entschuldige die Verzögerung. GMX hat administrator.de zum SPAM Versendet gemacht face-wink
122990
122990 05.12.2015 aktualisiert um 12:44:14 Uhr
Goto Top
Zitat von @DerVolker:
Forfiles liefert mir folgende Tabelle

Dateiname, rel. Pfad zur Datei, Datum der letzten Änderung,
Na das ist ein Klacks:
gci 'c:\Ordner' -recurse -Force | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date '01.01.2013')} | format-table Name,DirectoryName,LastWriteTime -Wrap  
Kannst Du evtl. eine gutes Buch zum Selbststudium empfehlen?
DerVolker
DerVolker 05.12.2015 um 15:18:53 Uhr
Goto Top
Noch einmal vielen Dank für Deine Tipps.

Volker
DerVolker
DerVolker 07.01.2016 um 10:21:49 Uhr
Goto Top
Hallo Grexit,

vielleicht hast Du noch einen Tipp:

Ich habe mein "forfiles.ps1" nun nach meinen Wünschen erstellt.
Die Tabelle (3 Spalten) wird aber nicht sauber dargestellt bzw. es wird eine Spalte nicht ausgegeben.

1. Spalte: Dateiname (kann bis zu 100 Zeichen enthalten)
2. Spalte: Ordnername (kann bis zu 200 Zeichen enthalten)
3. Spalte: Datum (ca. 20 Zeichen)

Auch wenn ich mit "width=..." arbeite erscheint die Warnung: "Die Spalte Datum passt nicht in die Anzeige und wurde entfernt.

Wie kann ich eine Tabelle mit ca. 350Zeichen breite ausgeben?

Danke,
Volker
122990
122990 07.01.2016 aktualisiert um 11:55:04 Uhr
Goto Top
........ | format-table Name,DirectoryName,LastWriteTime -Wrap -AutoSize

Oder gleich als CSV in eine Datei ausgeben
........ | export-csv 'c:\daten.csv' -NoType -Delimiter ";" -Encoding UTF8  
DerVolker
DerVolker 09.01.2016 um 12:59:00 Uhr
Goto Top
Hallo Grexit,

vielen Dank für Deine schnelle Antwort.

mit dem Parameter "-AutoSize" hatte ich auch schon experementiert. Leider ohne ein Ergebnis.

Die ersten Versuche mit "export-csv" waren nicht erfolgreich. Aber ich werde mich versuchen da "durch zu wurschteln" ,-)

Vielen Dank noch einmal für die Tipps,

Volker
122990
Lösung 122990 09.01.2016 aktualisiert um 16:02:54 Uhr
Goto Top
mit dem Parameter "-AutoSize" hatte ich auch schon experementiert. Leider ohne ein Ergebnis.
Die ersten Versuche mit "export-csv" waren nicht erfolgreich.
Kann ich nicht bestätigen, läuft hier wie immer einwandfrei, wird deinen rudimentären Powershell-Kenntnissen geschuldet sein, sorry. Da musst du durch.
Einen Grundkurs können wir hier ja nicht jedes mal geben.
gci 'c:\Ordner' -recurse -Force | ?{!$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date '01.01.2013')} | select Name,DirectoryName,LastWriteTime | export-csv 'c:\daten.csv' -NoType -Delimiter ";" -Encoding UTF8  
DerVolker
DerVolker 09.01.2016 um 16:02:44 Uhr
Goto Top
Hallo,

ich erwarte auch keinen Grundkurs sondern Tipps.
Die ich von Dir auch bekommen habe und dafür vielen Dank.

Wie gesagt: Die ersten Versuche... und ich werde mich damit noch weiter beschäftigen.
Entsprechende Literatur habe ich mir bestellt.

Wahrscheinlich habe ich folgende Problematik: "Meine Anwender" haben Verzeichnisse mit einer Länge von zum Teil weit über 200 Zeichen und die Dateinnamen erreichen auch über 100 Zeichen. (dank an Word das der erste Absatz als Dateiname angeboten wird).

Ich betrachte meine Anfrage erst einmal als erledigt. Da muss ich nun durch face-wink

Vielen Dank,
Volker