如何在 PowerShell 中查找具有副檔名的文件
-
在 PowerShell 中使用
Get-ChildItem
和Filter
查找具有擴展名的文件 -
在 PowerShell 中使用
Get-ChildItem
和Include
查找具有擴展名的文件 - 結論

PowerShell 是一種多功能且強大的工具,用於管理電腦上的文件和目錄。一個常見的任務是查找具有特定擴展名的文件。
在本文中,我們將探討使用 PowerShell 中的 Get-ChildItem
cmdlet 有效定位特定擴展名文件的方法。
在 PowerShell 中使用 Get-ChildItem
和 Filter
查找具有擴展名的文件
PowerShell 環境中的 Get-ChildItem
命令從指定位置獲取項目。項目可以位於容器中,而容器通常是一個文件夾。
此外,Get-ChildItem
使用 -Recurse
參數從子容器或子容器中獲取項目。它還包含一個 -Filter
參數,使用星號(*
)通配符來獲取所有具有特定擴展名的文件。
語法:
Get-ChildItem -Path "File Path" -Recurse -File -Filter *.txt
參數:
-Path "文件路徑"
:指定搜索的起始目錄,我們將在此查找特定擴展名。-Recurse
:將搜索擴展到子目錄,提供全面的搜索。-File
:專注於文件,而非目錄,確保僅返回文件。-Filter *.txt
:設置過濾器以查找具有".txt"
擴展名的文件。星號(*
)匹配".txt"
之前的任何字符。
讓我們舉一個例子。以下命令查找所有具有 .txt
擴展名的文件。
Get-ChildItem "C:\Files\" -Recurse -File -Filter *.txt
在該命令中,我們通過在 "C:\Files"
目錄上使用 Get-ChildItem
cmdlet 開始搜索,這使我們能夠收集有關項目的信息,無論它們是文件還是目錄。為了將搜索擴展到所有子目錄,我們包括了 -Recurse
參數。
然後,為了明確表明我們感興趣的是文件而不是目錄,我們添加了 -File
參數。最後,我們使用 -Filter *.txt
定義過濾條件,該條件查找以 ".txt"
結尾的文件,星號(*
)用作通配符字符來匹配其前面的任何字符。
這樣,我們有效地指示 PowerShell 定位所有以 ".txt"
結尾的文件。
輸出:
Directory: C:\Files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/15/2022 11:02 PM 0 file1.txt
-a---- 5/15/2022 11:02 PM 0 file2.txt
-a---- 5/15/2022 11:02 PM 0 file3.txt
Directory: C:\Files\Misc files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/15/2022 11:05 PM 0 file8.txt
Directory: C:\Files\More Files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/15/2022 11:02 PM 0 file4.txt
Directory: C:\Files\More Files\Some More Files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/15/2022 11:03 PM 0 file6.txt
我們可以將 -Name
參數添加到 Get-ChildItem
以僅輸出文件的路徑,而不是詳細輸出。
Get-ChildItem "C:\Files\" -Recurse -File -Name -Filter *.txt
輸出:
file1.txt
file2.txt
file3.txt
Misc files\file8.txt
More Files\file4.txt
More Files\Some More Files\file6.txt
我們可以看到,在輸出中,它僅顯示了文件的名稱和路徑,在執行帶有 -Name
參數的命令之後。
在 PowerShell 中使用 Get-ChildItem
和 Include
查找具有擴展名的文件
Get-ChildItem
命令使用 -Include
參數,該參數接受一個或多個字符串模式以包括匹配的項目。
語法:
Get-ChildItem "File Path" -Recurse -File -Name -Include *.txt
-Path "文件路徑"
:指定搜索的起始目錄,我們在此尋找特定擴展名的文件。-Recurse
:將搜索擴展到所有子目錄,確保全面的搜索。-File
:專注於文件,將目錄排除在結果之外。-Name
:在輸出中僅列出文件名稱,而不顯示詳細的文件信息。-Include *.txt
:過濾並檢索結果中具有".txt"
擴展名的文件。
在未使用 -Recurse
標誌的情況下,必須將結尾的星號(*
)添加到文件路徑。那樣的話,它僅列出 Files
文件夾中的 .txt
文件。
Get-ChildItem "C:\Files\*" -File -Name -Include *.txt
在命令中,我們使用 Get-ChildItem
cmdlet 開始在 "C:\Files"
目錄及其所有子目錄中查找文件。為了精確查找具有 ".txt"
擴展名的文件,我們應用了一系列參數。
我們首先設置路徑為 "C:\Files\*"
,這包括所有位於 "C:\Files"
下的子目錄。通過添加 -File
參數,我們專注於文件,排除了目錄。
-Name
參數使我們的輸出更加精煉,僅顯示文件的名稱,而 -Include *.txt
參數則通過過濾出具有 ".txt"
擴展名的文件來細化搜索。
輸出:
file1.txt
file2.txt
file3.txt
該輸出表示具有 ".txt"
擴展名的文件名稱列表,符合我們在 PowerShell 命令中指定的標準。
結論
在本文中,我們探討了在 PowerShell 中使用 Get-ChildItem
cmdlet 定位此類文件的有效方法。我們涵蓋了兩種方法:使用 -Filter
參數以獲得精確性和使用 -Include
參數以獲得靈活性。
這些技術可以簡化數據分析和組織等任務,使在 Windows 環境中的文件管理更加高效。