如何在 PowerShell 中獲取文件的完整路徑

  1. 使用 Get-ChildItem 獲取 PowerShell 中檔案的完整路徑
  2. 使用 Select-Object 獲取 PowerShell 中檔案的完整路徑
  3. 使用 Format-Table 獲取 PowerShell 中檔案的完整路徑
  4. 使用 foreach 循環獲取 PowerShell 中檔案的完整路徑
  5. 使用 Format-List 獲取 PowerShell 中檔案的完整路徑
  6. 結論
如何在 PowerShell 中獲取文件的完整路徑

PowerShell 有各種 cmdlets 來管理系統上的檔案。您可以使用 PowerShell 創建、複製、移動、重命名和刪除檔案。

您還可以在 PowerShell 中搜索檔案並檢查檔案是否存在。檔案路徑告訴您檔案在系統中的位置。

本教程將介紹不同的方法來獲取 PowerShell 中檔案的完整路徑。

使用 Get-ChildItem 獲取 PowerShell 中檔案的完整路徑

Get-ChildItem cmdlet 顯示指定位置的檔案和目錄列表。您可以使用 -Recurse 參數遞歸列出所有檔案和目錄。

它還會顯示子目錄及其檔案。這對於在 PowerShell 中進行遞歸檔案搜索非常有幫助。

這種方法通常用於您需要對分散在資料夾階層中的一組檔案執行操作的情境,例如檔案搜索、批量處理或數據組織任務。

示例:

Get-ChildItem -Path C:\ExampleDirectory -Filter *.txt -Recurse

我們首先指定根目錄 -Path C:\ExampleDirectory。這個選擇確立了我們搜索的起點,確保我們在正確的位置尋找。

接下來,我們引入 -Filter *.txt 參數。這是我們的戰略舉措,因為它顯著縮小了我們的搜索範圍,只針對擁有 .txt 擴展名的檔案。

透過這樣做,我們有效地避開了大量不相關的檔案,使我們的腳本更專注且執行速度更快。

我們腳本中的真正變革者是 -Recurse 參數。這讓我們能利用 PowerShell 深入目錄結構的能力。

使用 -Recurse,我們不僅僅是瀏覽 C:\ExampleDirectory 的表面;我們在探索每個角落和每個子目錄,無論它有多深。

輸出:

在 PowerShell 中獲取文件的完整路徑 - 輸出 1

您可以通過將命令通過管道傳遞到 %{$_.FullName} 來獲取檔案的完整路徑。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter sample.txt -Recurse | % { $_.FullName }

輸出:

獲取 PowerShell 中文件的完整路徑 - 輸出 2

或者,您可以使用此命令來獲取指定位置上所有具有 .txt 擴展名的檔案及其路徑。

示例:

Get-ChildItem -Path ExampleDirectory\ -Recurse | where { $_.extension -eq ".txt" } | % { $_.FullName }

輸出:

在 PowerShell 中獲取檔案的完整路徑 - 輸出 3

使用 Select-Object 獲取 PowerShell 中檔案的完整路徑

將使用類似的方法,但我們將使用 Select-Object cmdlet 與 Get-ChildItem 命令來獲取 PowerShell 中檔案的完整路徑。

Select-Object cmdlet 選擇對象或對象集合的指定屬性。這種技術在需要進行檔案系統審核、管理數據或執行清理操作的情境中特別有用。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName

通過這個腳本,我們利用 Get-ChildItemSelect-Object 的結合力量來高效定位和列出 .txt 檔案。從 ExampleDirectory\ 開始我們的搜索,確保包括所有相關的子目錄。

-Filter *.txt 是一個關鍵組件,讓我們聚焦於僅僅是 .txt 檔案,從而簡化我們的搜索。

通過使用 -Recurse,我們不僅僅是在表面上進行操作;我們深入到每個子目錄,確保沒有檔案被忽略。魔法發生在 | Select-Object -ExpandProperty FullName,這使我們的輸出僅顯示必要的信息 - 檔案的完整路徑。

輸出:

在 PowerShell 中獲取文件的完整路徑 - 輸出 4

使用 Format-Table 獲取 PowerShell 中檔案的完整路徑

類似地,您可以使用 Format-Table 獲取 PowerShell 中檔案的完整路徑。Format-Table cmdlet 將輸出格式化為一個表,顯示所選對象的屬性。

Get-ChildItem cmdlet 在搭配 Format-Table 時,成為了一個強大的工具,不僅能檢索檔案路徑,還能以有組織的、可讀的格式呈現它們。這種方法對於需要快速評估和報告其檔案系統結構的人尤為有用。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-Table FullName

在這段腳本中,我們策略性地使用 Get-ChildItem 尋找 ExampleDirectory\ 及其子目錄中的 .txt 檔案。-Filter *.txt 參數至關重要,因為它確保我們的搜索是專注和高效的,忽略不相關的檔案類型。

-Recurse 標記對於徹底搜索至關重要,確保沒有子目錄被忽視。

搜索後,我們使用 | Format-Table FullName 將我們的發現轉換為一個組織良好的表格。這不僅提升了可讀性,還提供了完整路徑的清晰結構視圖。

輸出:

在 PowerShell 中獲取文件的完整路徑 - 輸出 5

使用 foreach 循環獲取 PowerShell 中檔案的完整路徑

foreach 循環也被稱為 PowerShell 中的 foreach 語句。這是一種語言結構,用於循環遍歷集合中的一系列值,例如陣列、對象、字串、數字等。

您可以在 foreach 循環中對陣列中的每個項目執行一個或多個命令。

示例:

Get-ChildItem -Path ExampleDirectory\*.txt -Recurse | foreach { "$_" }

在這個腳本中,我們首先利用 Get-ChildItem 仔細搜索 ExampleDirectory\ 中的 .txt 檔案。

包括 -Recurse 確保了穿越所有子目錄層次的全面搜索。然後遇到的每個檔案被傳入 foreach 循環中。

在這個循環中,$_ 作為當前檔案的佔位符。通過將 $_ 包裝在引號中並輸出,我們指示 PowerShell 顯示每個檔案的完整路徑。

這種方法不僅僅是獲取數據;它是一次系統性地遍歷每個檔案,提供在循環中添加更複雜操作的靈活性。

輸出:

在 PowerShell 中獲取文件的完整路徑 - 輸出 6

上述命令不適用於 -Filter 參數。您可以將管道傳遞給中間的 Get-Item cmdlet 以使用 -Filter 參數。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Get-Item | foreach { "$_" }

在管道中添加 Get-Item 是一個關鍵步驟,因為它允許有效利用 -Filter 參數,確保僅處理 .txt 檔案。

輸出:

在 PowerShell 中獲取檔案的完整路徑 - 輸出 7

Get-ChildItem 有內建的別名 lsdirgci。您可以使用任何一個別名來替代 Get-ChildItem cmdlet 執行上述所有命令。

示例:

gci -Path ExampleDirectory\ -Filter *.txt -Recurse | % { $_.FullName }

在使用別名的情況下,這個命令變得更加簡潔,同時仍然保持其功能。來自不同背景的用戶(例如 Unix/Linux 或舊版 Windows 命令行)可能會發現 lsdir 更加熟悉。

輸出:

在 PowerShell 中獲取文件的完整路徑 - 輸出 8

使用 Format-List 獲取 PowerShell 中檔案的完整路徑

Get-ChildItem cmdlet 對於瀏覽和檢索有關檔案和目錄的資訊是多用途的。當與 -Filter 參數一起使用時,它可以特定地針對某種類型的檔案,例如 .txt 檔案。

另一方面,Format-List 以列表格式顯示對象的屬性。當與 Get-ChildItem 結合使用時,它可以用來呈現清晰、可讀的檔案路徑列表。

示例:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-List FullName

在我們的代碼中,我們使用 Get-ChildItem 徹底搜索 ExampleDirectory\ 及其子目錄(-Recurse)中的 .txt 擴展名的檔案(-Filter *.txt)。每個發現的檔案隨後通過管道 (|) 無縫轉移到 Format-List cmdlet 中。

我們專注於提取每個檔案的 FullName 屬性,代表其完整路徑。這種方法特別適合創建有組織和易於閱讀的檔案路徑列表。

輸出:

在 PowerShell 中獲取文件的完整路徑 - 輸出 9

結論

最後,PowerShell 提供了眾多 cmdlets 以便精通檔案管理。在本文中,我們探索了使用 PowerShell 檢索檔案完整路徑的各種方法,特別是利用 Get-ChildItem cmdlet 與 Format-ListSelect-ObjectFormat-Table 等其他 cmdlets 結合使用。

這些技術對於涉及檔案系統審計、數據管理和批量處理的任務是非常重要的。我們討論的每種方法都提供了一種獨特的處理檔案路徑的方法,無論是過濾特定檔案類型、以格式化表列出路徑,還是通過 foreach 循環遍歷檔案。

對於希望深入了解 PowerShell 技巧的讀者,下一步可以探索更先進的檔案操作技術,深入研究 PowerShell 腳本以進行自動化,甚至將 PowerShell 命令與其他工具和腳本集成以實現更複雜的工作流程。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell File