如何在 PowerShell 中查找具有副檔名的文件

  1. 在 PowerShell 中使用 Get-ChildItemFilter 查找具有擴展名的文件
  2. 在 PowerShell 中使用 Get-ChildItemInclude 查找具有擴展名的文件
  3. 結論
如何在 PowerShell 中查找具有副檔名的文件

PowerShell 是一種多功能且強大的工具,用於管理電腦上的文件和目錄。一個常見的任務是查找具有特定擴展名的文件。

在本文中,我們將探討使用 PowerShell 中的 Get-ChildItem cmdlet 有效定位特定擴展名文件的方法。

在 PowerShell 中使用 Get-ChildItemFilter 查找具有擴展名的文件

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-ChildItemInclude 查找具有擴展名的文件

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 環境中的文件管理更加高效。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe

相關文章 - PowerShell File