Wie führt man eine rekursive Dateisuche nach versteckten Dateien unter Windows durch?

Wie führt man eine rekursive Dateisuche nach versteckten Dateien unter Windows durch?

Mir ist aufgefallen, dass weder cmdnoch powershelleine rekursive Dateisuche nach Dateien mit dem Attribut „Versteckt“ möglich ist.

Gibt es also einen Weg, das zu umgehen? Ich meine, außer das versteckte Attribut aus der oder den betreffenden Dateien entfernen zu müssen, wofür ich vorher ihren Speicherort kennen müsste, was die ganze Übung natürlich sinnlos machen würde.

Warum funktioniert es nicht mit Dateien, die das Attribut „versteckt“ haben? Ist das eine Art Sicherheitsfunktion?

Beispiel (cmd)


C:\>dir /b
Intel
PerfLogs
plant
Program Files
Program Files (x86)
Users
Windows

C:\>cd plant

C:\plant>dir /b
banana.txt

C:\plant>attrib banana.txt
A            C:\plant\banana.txt

C:\plant>attrib -a +h banana.txt

C:\plant>dir /b

C:\plant>dir /b banana.txt
File Not Found

C:\plant>cd /

C:\>dir /b /s banana.txt
File Not Found

C:\>

Antwort1

So listen Sie versteckte Dateien auf:Power ShellSie müssen den -ForceParameter verwenden. Wenn Sie verwenden, Get-ChildItem -Force -Recurseerhalten Sie eine Liste aller Dateien, einschließlich versteckter Dateien.

Get-Help Get-ChildItem -Examples:

Der Parameter Force fügt der Anzeige versteckte Dateien hinzu.

Ja, es ist nicht intuitiv und die Beschreibung des Parameters selbst sagt Ihnen nichts.

Für die Befehlszeile selbst wäre es dir /Aoder dir /AHnur das Auflisten versteckter Dateien, aber ich bin nicht sicher, wie Sie diese Ausgabe durchsuchen würden.

Antwort2

Verwenden Sie in der Windows-Eingabeaufforderung die Schalter /a und /s für alle Dateien und rekursiv:

/A          Displays files with specified attributes.
/S          Displays files in specified directory and all subdirectories.

Beispiel

dir/a/s

In Powershell verwende ich dieselbe Methode, nur mit -force anstelle von /a, um alle Dateien anzuzeigen:

dir -force -s

oder

dir -force -r

Außerdem gibt es in Powershell „ls“, um ein Zeichen weniger einzugeben!

ls -force -s

oder

ls -force -r

Antwort3

Schließlich lautete die Antwort:

  • CMD:dir /a:H /s

  • POWERSHELL: ls -ah -recurse (Option -force)

verwandte Informationen