如何在縮圖視圖中使用 Windows 檔案過濾

如何在縮圖視圖中使用 Windows 檔案過濾

如果您在詳細資訊模式下查看資料夾並查看列標題,您將在每個屬性(名稱、大小、專輯、藝術家等)旁邊看到一個箭頭。單擊該箭頭會顯示一個選單,列出該給定屬性中的所有可用標籤,您可以在其中選擇要在該列上過濾的標籤,然後您可以在另一列中進一步過濾文件,等等。

這是文件過濾器的螢幕截圖。

文件過濾器

我希望能夠在其他資料夾視圖(例如縮圖視圖)中使用該功能。我不確定實現這一目標的正確方法是什麼。我想也許這些選單可以有快捷方式,或者註冊表調整可以始終在所有視圖中顯示詳細資訊列標題,但我不知道該怎麼做。

在詳細資料視圖中進行過濾後,我可以將資料夾視圖變更為其他任何內容,並且過濾器保持不變,因此它在其他視圖中工作,但我必須切換到詳細資訊模式,然後每次我想使用過濾器時切換回縮圖,所以我想跳過此步驟

答案1

注意:以下內容在我的筆記型電腦上運行:

版本 Windows 10 家用
版 22H2
安裝於 ‎8/‎10/‎2020
作業系統版本 19045.2486
體驗 Windows 功能體驗套件 120.2212.4190.0

不再支援的功能可能隨時變更。是的,我還沒有嘗試過 Windows 11,所以在這方面沒有任何線索。


的一個組成部分探險家視圖設定是一組標誌,資料夾標誌。通常禁止顯示列標題的標誌是:

FWF_NOHEADERINALLVIEWS
值:0x01000000
Windows Vista 及更高版本。僅在詳細資料檢視模式下顯示列標題。

但即使文件模板中清除了該標誌,探險家顯示資料夾時會覆蓋它,並且標題僅顯示在Details視圖中。但在電源外殼,該標誌可以被清除積極的 探險家窗口,並且將顯示標題:

在此輸入影像描述

電源外殼程式碼將會開啟所有列標題探險家運行命令時打開的視窗:

@((New-Object -Com shell.application).Windows()).ForEach({
    $_.Document.FolderFlags = ($_.Document.FolderFlags -band 0xfeffffff)
    $_.Refresh()
})

可以將上面的程式碼複製貼上到電源外殼控制台窗口,並執行以快速測試其可行性;但這並不是日常使用的好方法。在我看來,為以下內容創建了一個上下文選單條目目錄背景菜單最有意義。為此,我們需要程式碼的命令列版本。

Run適合對話框或作為快捷方式目標(因此也適合作為上下文選單命令)的命令列將是:

PowerShell -NoProfile -ExecutionPolicy Bypass -Command '& {@((New-Object -Com shell.application).Windows()).ForEach({$_.Document.FolderFlags = ($_.Document.FolderFlags -band 0xfeffffff');$_.Refresh()})}'

但有著令人惱火的藍色短暫閃光電源外殼命令執行時的 cosole。為了解決這個問題,我們使用cmd.exe啟動電源外殼最小化。發射電源外殼來自的命令cmd.exe提出了具有特殊字元和引號的問題,這些問題通常可以透過引用.bat或檔案來解決,但我們可以透過將PowerShell 參數與 Base64 編碼版本的命令一起.ps1使用來保持 regsitry 命令的獨立性。-EncodedCommand以下程式碼可以作為區塊複製,貼上到電源外殼cosole 並執行以建立上下文選單條目:

$PSCommand      = '@((New-Object -Com shell.application).Windows()).ForEach({ $_.Document.FolderFlags = ($_.Document.FolderFlags -band 0xfeffffff); $_.Refresh()})'
$CommandBytes   = [System.Text.Encoding]::Unicode.GetBytes($PSCommand)
$encodedCommand = [Convert]::ToBase64String($CommandBytes)

$CommandLine    = 'cmd.exe /c start /min "" PowerShell -NoProfile -ExecutionPolicy Bypass -EncodedCommand ' + $EncodedCommand

$RegKey         = 'HKCU:\SOFTWARE\Classes\Directory\Background\Shell\ShowColumnHeaders'

[PSCustomObject]@{
    '(Default)' = 'Show Column Headers'
   'Position' = 'Top'
} | Set-ItemProperty -Path (mkdir $RegKey -Force).PSPath

New-Item -Path $RegKey -Name Command -Value $CommandLine | out-null

如果您願意,可以透過合併文件來建立選單項目.reg。以下是由上述程式碼建立的 reisgtry 鍵的匯出。儲存為.reg文件,然後合併以建立上下文選單項目:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\ShowColumnHeaders]
@="Show Column Headers"
"Position"="Top"

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\ShowColumnHeaders\Command]
@="cmd.exe /c start /min \"\" PowerShell -NoProfile -ExecutionPolicy Bypass -EncodedCommand QAAoACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AQwBvAG0AIABzAGgAZQBsAGwALgBhAHAAcABsAGkAYwBhAHQAaQBvAG4AKQAuAFcAaQBuAGQAbwB3AHMAKAApACkALgBGAG8AcgBFAGEAYwBoACgAewAgACQAXwAuAEQAbwBjAHUAbQBlAG4AdAAuAEYAbwBsAGQAZQByAEYAbABhAGcAcwAgAD0AIAAoACQAXwAuAEQAbwBjAHUAbQBlAG4AdAAuAEYAbwBsAGQAZQByAEYAbABhAGcAcwAgAC0AYgBhAG4AZAAgADAAeABmAGUAZgBmAGYAZgBmAGYAKQA7ACAAJABfAC4AUgBlAGYAcgBlAHMAaAAoACkAfQApAA=="

使用上述兩種方法之一建立註冊表項後,您應該在後台上下文功能表的頂部看到一個新項目探險家視窗:

在此輸入影像描述

執行後:

在此輸入影像描述

就像探險家覆蓋模板設置,即使導航到當前資料夾的子資料夾,標題也會消失。我不知道有什麼辦法可以解決這個問題——你只需要再次執行命令。

相關內容