在 PowerShell 中獲取檔案的完整路徑

Rohan Timalsina 2023年1月30日 2022年5月16日
  1. 在 PowerShell 中使用 Get-ChildItem 獲取檔案的完整路徑
  2. 在 PowerShell 中使用 Select-Object 獲取檔案的完整路徑
  3. 在 PowerShell 中使用 Format-Table 獲取檔案的完整路徑
  4. 在 PowerShell 中使用 foreach 迴圈獲取檔案的完整路徑
在 PowerShell 中獲取檔案的完整路徑

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 中。它顯示檔案的 PathModeLastWriteTimeLengthName

你可以通過將命令傳送到 %{$_.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 具有內建別名 lsdirgci。你可以使用任何控制代碼代替 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
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