如何在 PowerShell 中獲取文件的完整路徑
-
使用
Get-ChildItem
獲取 PowerShell 中檔案的完整路徑 -
使用
Select-Object
獲取 PowerShell 中檔案的完整路徑 -
使用
Format-Table
獲取 PowerShell 中檔案的完整路徑 -
使用
foreach
循環獲取 PowerShell 中檔案的完整路徑 -
使用
Format-List
獲取 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
的表面;我們在探索每個角落和每個子目錄,無論它有多深。
輸出:
您可以通過將命令通過管道傳遞到 %{$_.FullName}
來獲取檔案的完整路徑。
示例:
Get-ChildItem -Path ExampleDirectory\ -Filter sample.txt -Recurse | % { $_.FullName }
輸出:
或者,您可以使用此命令來獲取指定位置上所有具有 .txt
擴展名的檔案及其路徑。
示例:
Get-ChildItem -Path ExampleDirectory\ -Recurse | where { $_.extension -eq ".txt" } | % { $_.FullName }
輸出:
使用 Select-Object
獲取 PowerShell 中檔案的完整路徑
將使用類似的方法,但我們將使用 Select-Object
cmdlet 與 Get-ChildItem
命令來獲取 PowerShell 中檔案的完整路徑。
Select-Object
cmdlet 選擇對象或對象集合的指定屬性。這種技術在需要進行檔案系統審核、管理數據或執行清理操作的情境中特別有用。
示例:
Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName
通過這個腳本,我們利用 Get-ChildItem
和 Select-Object
的結合力量來高效定位和列出 .txt
檔案。從 ExampleDirectory\
開始我們的搜索,確保包括所有相關的子目錄。
-Filter *.txt
是一個關鍵組件,讓我們聚焦於僅僅是 .txt
檔案,從而簡化我們的搜索。
通過使用 -Recurse
,我們不僅僅是在表面上進行操作;我們深入到每個子目錄,確保沒有檔案被忽略。魔法發生在 | Select-Object -ExpandProperty FullName
,這使我們的輸出僅顯示必要的信息 - 檔案的完整路徑。
輸出:
使用 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
將我們的發現轉換為一個組織良好的表格。這不僅提升了可讀性,還提供了完整路徑的清晰結構視圖。
輸出:
使用 foreach
循環獲取 PowerShell 中檔案的完整路徑
foreach
循環也被稱為 PowerShell 中的 foreach
語句。這是一種語言結構,用於循環遍歷集合中的一系列值,例如陣列、對象、字串、數字等。
您可以在 foreach
循環中對陣列中的每個項目執行一個或多個命令。
示例:
Get-ChildItem -Path ExampleDirectory\*.txt -Recurse | foreach { "$_" }
在這個腳本中,我們首先利用 Get-ChildItem
仔細搜索 ExampleDirectory\
中的 .txt
檔案。
包括 -Recurse
確保了穿越所有子目錄層次的全面搜索。然後遇到的每個檔案被傳入 foreach
循環中。
在這個循環中,$_
作為當前檔案的佔位符。通過將 $_
包裝在引號中並輸出,我們指示 PowerShell 顯示每個檔案的完整路徑。
這種方法不僅僅是獲取數據;它是一次系統性地遍歷每個檔案,提供在循環中添加更複雜操作的靈活性。
輸出:
上述命令不適用於 -Filter
參數。您可以將管道傳遞給中間的 Get-Item
cmdlet 以使用 -Filter
參數。
示例:
Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Get-Item | foreach { "$_" }
在管道中添加 Get-Item
是一個關鍵步驟,因為它允許有效利用 -Filter
參數,確保僅處理 .txt
檔案。
輸出:
Get-ChildItem
有內建的別名 ls
、dir
和 gci
。您可以使用任何一個別名來替代 Get-ChildItem
cmdlet 執行上述所有命令。
示例:
gci -Path ExampleDirectory\ -Filter *.txt -Recurse | % { $_.FullName }
在使用別名的情況下,這個命令變得更加簡潔,同時仍然保持其功能。來自不同背景的用戶(例如 Unix/Linux 或舊版 Windows 命令行)可能會發現 ls
或 dir
更加熟悉。
輸出:
使用 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 提供了眾多 cmdlets 以便精通檔案管理。在本文中,我們探索了使用 PowerShell 檢索檔案完整路徑的各種方法,特別是利用 Get-ChildItem
cmdlet 與 Format-List
、Select-Object
和 Format-Table
等其他 cmdlets 結合使用。
這些技術對於涉及檔案系統審計、數據管理和批量處理的任務是非常重要的。我們討論的每種方法都提供了一種獨特的處理檔案路徑的方法,無論是過濾特定檔案類型、以格式化表列出路徑,還是通過 foreach
循環遍歷檔案。
對於希望深入了解 PowerShell 技巧的讀者,下一步可以探索更先進的檔案操作技術,深入研究 PowerShell 腳本以進行自動化,甚至將 PowerShell 命令與其他工具和腳本集成以實現更複雜的工作流程。