在 PowerShell 中獲取檔案的完整路徑
-
在 PowerShell 中使用
Get-ChildItem
獲取檔案的完整路徑 -
在 PowerShell 中使用
Select-Object
獲取檔案的完整路徑 -
在 PowerShell 中使用
Format-Table
獲取檔案的完整路徑 -
在 PowerShell 中使用
foreach
迴圈獲取檔案的完整路徑
PowerShell 有各種 cmdlet
來管理系統上的檔案。你可以使用 PowerShell 建立、複製、移動、重新命名和刪除檔案。
你還可以在 PowerShell 中搜尋檔案並檢查檔案是否存在。檔案路徑告訴檔案在系統上的位置。本教程將介紹不同的方法來獲取 PowerShell 中檔案的完整路徑。
在 PowerShell 中使用 Get-ChildItem
獲取檔案的完整路徑
Get-ChildItem
cmdlet 顯示指定位置的檔案和目錄列表。你可以使用 -Recurse
引數以遞迴方式列出所有檔案和目錄。
它還顯示子目錄及其檔案。它有助於在 PowerShell 中進行遞迴檔案搜尋。
這是遞迴檔案搜尋的示例:
Get-ChildItem -Path C:\New -Filter test.txt -Recurse
上面的命令遞迴地在位置 C:\New
上搜尋檔案 test.txt
。它檢查給定位置內的所有目錄和子目錄,如果找到則顯示檔案的詳細資訊。
輸出:
Directory: C:\New\complex
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 12/16/2021 7:29 AM 198 test.txt
如你所見,檔案 test.txt
位於目錄 C:\New\complex
中。它顯示檔案的 Path
、Mode
、LastWriteTime
、Length
和 Name
。
你可以通過將命令傳送到 %{$_.FullName}
來獲取檔案的完整路徑。
Get-ChildItem -Path C:\New -Filter test.txt -Recurse | %{$_.FullName}
輸出:
C:\New\complex\test.txt
你可以使用*.txt
和 -Filter
引數來獲取位置 C:\New
上具有 .txt
副檔名的所有檔案。
Get-ChildItem -Path C:\New -Filter *.txt -Recurse | %{$_.FullName}
輸出:
C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt
或者,你可以使用此命令在指定位置獲取所有具有 .txt
副檔名的檔案及其路徑。
Get-ChildItem -Path C:\New -Recurse | where {$_.extension -eq ".txt"} | %{$_.FullName}
在 PowerShell 中使用 Select-Object
獲取檔案的完整路徑
將使用類似的方法,但我們將使用 Select-Object
cmdlet 和 Get-ChildItem
命令來獲取 PowerShell 中檔案的完整路徑。Select-Object
cmdlet 選擇一個物件或一組物件的指定屬性。
Get-ChildItem -Path C:\New -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName
輸出:
C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt
在 PowerShell 中使用 Format-Table
獲取檔案的完整路徑
同樣,你可以使用 Format-Table
在 PowerShell 中獲取檔案的完整路徑。Format-Table
cmdlet 將輸出格式化為具有選定物件屬性的表格。
Get-ChildItem -Path C:\pc -Filter car.png -Recurse | Format-Table FullName
輸出:
FullName
--------
C:\pc\computing\task4\car.png
在 PowerShell 中使用 foreach
迴圈獲取檔案的完整路徑
foreach
迴圈在 PowerShell 中也稱為 foreach
語句。它是一種語言結構,用於迴圈遍歷陣列、物件、字串、數字等集合中的一系列值。你可以在 foreach
迴圈中對陣列中的每個專案執行一個或多個命令。
以下是如何使用 foreach
迴圈在 PowerShell 中獲取檔案的完整路徑。
Get-ChildItem -path C:\New\*.txt -Recurse | foreach { "$_" }
輸出:
C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt
上述命令不適用於 -Filter
引數。你可以通過管道連線到中間的 Get-Item
cmdlet 以使用 -Filter
引數。
Get-ChildItem -Path C:\New -Filter *.txt -Recurse | Get-Item | foreach { "$_" }
輸出:
C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt
Get-ChildItem
具有內建別名 ls
、dir
和 gci
。你可以使用任何控制代碼代替 Get-ChildItem
cmdlet 來執行上述所有命令。
例如:
gci -Path C:\New -Filter *.txt -Recurse | %{$_.FullName}
輸出:
C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt