經過大量研究後,我必須問:
- 有沒有辦法取得資料夾清單(而不是檔案)以及可能的路徑在 Windows 7 中開啟?
我想從檔案系統而不是應用程式視窗取得資料夾。
我試過SysInternal 的 ProcessExplorer沒有成功。我得到的最接近的是 Windows 資源管理器工作列彈出視窗的螢幕截圖。
答案1
你可以使用處理應用程序,然後使用過濾適用的結果尋找命令為物件類型指定“文件”,如下面的一些範例。
您可以透過包含和排除某些字串模式來進一步擴展這些方法以滿足您的需求僅顯示資料夾物件類型並排除某些檔案副檔名。
語法範例
以下將只顯示包含字串「 file 」的結果,其中包括字元「file」旁的逗號前後的前導空格和尾隨空格
handle64 -a | FIND /I " file "
進一步縮小範圍
您還可以添加更多FIND
命令過濾器,根據您的條件進一步縮小結果範圍,並將每個FIND
命令通過管道傳輸到下一個FIND
命令,以返回包含和排除的匹配字串。
FIND /I "<string>"
: 表示忽略字元的大小寫,僅顯示包含特定符合字串的結果。FIND /I /V "<string>"
:新增/V
開關會排除包含特定匹配字串的所有行。
下面將僅顯示包含字串「 file 」的結果(如上面的範例),然後將這些結果透過管道傳輸到下一個
FIND
命令,然後僅顯示包含「:\」(冒號和反斜線)字元的剩餘結果。handle64 -a | FIND /I " file " | FIND /I ":\"
以下將僅顯示包含字串「 file 」的結果,並將這些結果透過管道傳輸到下一個
FIND
命令,然後將這些結果透過管道傳輸到下一個 find 命令,並使用開關/V
排除而不顯示與此模式匹配的結果。handle64 -a | FIND /I " file " | FIND /I ":\" | FIND /I /V "C:\Windows"
縮放和其他工具
您可以透過將一個命令傳遞到下一個命令來繼續擴展適用的命令以進行進一步的排除等,例如排除「.bin」的檔案副檔名等,直到您獲得滿足所需條件的所需結果。
你可能可以使用電源外殼和/或查找字串為了更有效地做到這一點,但我現在沒有時間進行大量測試,所以我想我會將這個快速方法交給您,它可能適合您的需求。
處理
介紹
有沒有想過哪個程式開啟了特定的檔案或目錄?現在你就可以知道了。 Handle 是一個實用程序,可顯示有關係統中任何進程的開啟句柄的資訊。您可以使用它來查看開啟檔案的程序,或查看程式的所有句柄的物件類型和名稱。
您還可以獲得該程式的基於 GUI 的版本,流程瀏覽器,在 Sysinternals。
安裝
您可以鍵入“handle”來運行 Handle。您必須具有管理權限才能執行 Handle。
用法
Handle 的目標是搜尋開啟的檔案引用,因此如果不指定任何命令列參數,它將列出系統中引用開啟的檔案的所有句柄的值以及檔案的名稱。它還需要幾個參數來修改此行為。
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.
處理輸出
當不處於搜尋模式時(透過指定名稱片段作為參數啟用),Handle 將其輸出分為為其列印句柄資訊的每個進程的部分。虛線用作分隔符,在其下方您將看到進程名稱及其進程 ID (PID)。進程名稱下方列出了句柄值(以十六進位表示)、與句柄關聯的物件的類型以及物件的名稱(如果有)。
當處於搜尋模式時,Handle 會列印進程名稱,並且 id 列在左側,匹配的物件的名稱列在右側。