Nach langen Recherchen muss ich fragen:
- Gibt es eine Möglichkeit, eine Liste von Ordnern (nicht Dateien) und möglicherweise deren Pfade zu erhalten?die in Windows 7 geöffnet werden?
Ich möchte Ordner aus dem Dateisystem abrufen, nicht aus Anwendungsfenstern.
Ich habe es versuchtProcessExplorer von SysInternalohne Erfolg. Am nächsten kam ich einem Screenshot des Taskleisten-Popups für Windows Explorer.
Antwort1
Sie können dieHandhabenAnwendung und filtern Sie dann die anwendbaren Ergebnisse mit demFindenBefehl zum Angeben von „Dateien“ für die Objekttypen wie einige der folgenden Beispiele.
Sie können diese Methoden noch weiter skalieren, um Ihren Anforderungen gerecht zu werden, indem Sie bestimmte Zeichenfolgenmuster ein- und ausschließenum nur Ordnerobjekttypen anzuzeigen und bestimmte Dateierweiterungen auszuschließen.
Syntaxbeispiele
Im Folgenden werden nur Ergebnisse angezeigt, die die Zeichenfolge „Datei“ enthalten und die Leerzeichen vor und nach den Kommas neben den Zeichen „Dateien“ enthalten.
handle64 -a | FIND /I " file "
Weitere Eingrenzung
Sie können zusätzlich weitere FIND
Befehlsfilter hinzufügen, um die Ergebnisse je nach Ihren Kriterien noch weiter einzugrenzen und jeden FIND
Befehl an den nächsten FIND
Befehl weiterzuleiten, um eingeschlossene und ausgeschlossene übereinstimmende Zeichenfolgen zurückzubringen.
FIND /I "<string>"
: bedeutet, dass die Groß-/Kleinschreibung von Zeichen ignoriert wird und nur Ergebnisse angezeigt werden, die die spezifische übereinstimmende Zeichenfolge enthalten.FIND /I /V "<string>"
: Durch das Hinzufügen des/V
Schalters werden alle Zeilen ausgeschlossen, die die spezifische übereinstimmende Zeichenfolge enthalten.
Im Folgenden werden nur Ergebnisse angezeigt, die die Zeichenfolge „Datei“ enthalten (genau wie im obigen Beispiel). Diese Ergebnisse werden dann an den nächsten Befehl weitergeleitet,
FIND
um dann nur die verbleibenden Ergebnisse anzuzeigen, die die Zeichen „:\“ (Doppelpunkt und Backslash) enthalten.handle64 -a | FIND /I " file " | FIND /I ":\"
Nachfolgend werden nur Ergebnisse angezeigt, die die Zeichenfolge „Datei“ enthalten. Diese Ergebnisse werden an den nächsten
FIND
Befehl weitergeleitet und diese Ergebnisse werden dann an den nächsten Suchbefehl weitergeleitet, mit dem/V
Schalter, um Ergebnisse, die diesem Muster entsprechen, auszuschließen und nicht anzuzeigen.handle64 -a | FIND /I " file " | FIND /I ":\" | FIND /I /V "C:\Windows"
Skalierung und andere Werkzeuge
Sie können die Anzahl der anwendbaren Befehle weiter skalieren, indem Sie einen Befehl an den nächsten weiterleiten, um weitere Ausschlüsse vorzunehmen usw., z. B. das Ausschließen der Dateierweiterung „.bin“ usw., bis Sie die gewünschten Ergebnisse erhalten, die die von Ihnen benötigten Kriterien erfüllen.
Sie könnten wahrscheinlich verwendenPower Shellund/oderFINDSTRum dies effizienter zu machen, aber ich habe gerade keine Zeit, eine Menge Tests durchzuführen, deshalb dachte ich, ich gebe Ihnen diese schnelle Methode weiter, die Ihren Anforderungen entsprechen könnte.
Handhaben
Einführung
Haben Sie sich schon einmal gefragt, welches Programm eine bestimmte Datei oder ein bestimmtes Verzeichnis geöffnet hat? Jetzt können Sie es herausfinden. Handle ist ein Dienstprogramm, das Informationen zu offenen Handles für jeden Prozess im System anzeigt. Sie können damit die Programme anzeigen, die eine Datei geöffnet haben, oder die Objekttypen und Namen aller Handles eines Programms anzeigen.
Sie können auch eine GUI-basierte Version dieses Programms erhalten,Process Explorer, hier bei Sysinternals.
Installation
Sie führen Handle aus, indem Sie „handle“ eingeben. Zum Ausführen von Handle müssen Sie über Administratorrechte verfügen.
Verwendung
Handle ist auf die Suche nach Verweisen auf geöffnete Dateien ausgerichtet. Wenn Sie also keine Befehlszeilenparameter angeben, werden die Werte aller Handles im System aufgelistet, die auf geöffnete Dateien verweisen, sowie die Namen dieser Dateien. Außerdem werden mehrere Parameter benötigt, die dieses Verhalten ändern.
usage: handle [[-a] [-u] | [-c <handle> [-l] [-y]] | [-s]] [-p <processname>| <pid>> [name] -a Dump information about all types of handles, not just those that refer to files. Other types include ports, Registry keys, synchronization primitives, threads, and processes. -c Closes the specified handle (interpreted as a hexadecimal number). You must specify the process by its PID. WARNING: Closing handles can cause application or system instability. -l Dump the sizes of pagefile-backed sections. -y Don't prompt for close handle confirmation. -s Print count of each type of handle open. -u Show the owning user name when searching for handles. -p Instead of examining all the handles in the system, this parameter narrows Handle's scan to those processes that begin with the name process. Thus: handle -p exp would dump the open files for all processes that start with "exp", which would include Explorer. name This parameter is present so that you can direct Handle to search for references to an object with a particular name. For example, if you wanted to know which process (if any) has "c:\windows\system32" open you could type: handle windows\system The name match is case-insensitive and the fragment specified can be anywhere in the paths you are interested in.
Ausgabe verarbeiten
Wenn Handle sich nicht im Suchmodus befindet (aktiviert durch Angabe eines Namensfragments als Parameter), unterteilt es seine Ausgabe in Abschnitte für jeden Prozess, für den es Handle-Informationen druckt. Gestrichelte Linien dienen als Trennzeichen, direkt darunter sehen Sie den Prozessnamen und seine Prozess-ID (PID). Unter dem Prozessnamen sind Handle-Werte (in Hexadezimalzahlen), der Objekttyp, mit dem das Handle verknüpft ist, und der Name des Objekts (sofern vorhanden) aufgeführt.
Im Suchmodus druckt Handle die Prozessnamen und IDs auf der linken Seite und die Namen der Objekte, die eine Übereinstimmung aufweisen, auf der rechten Seite.