HOWTO · PowerShell

如何在 PowerShell 中加入路徑以將多於兩個字串組合成檔案路徑

本教程將教您如何使用 Join-Path 將多個字串合併為檔案路徑。

本頁內容

Join-Path cmdlet 允許用戶將字符串組合成單一路徑。有時,您可能需要組合路徑以在 PowerShell 中創建單一路徑。

這就是 Join-Path cmdlet 開始發揮作用的地方。許多子路徑可以與主路徑進行組合或附加,以創建單一路徑。

-Path 參數指定要附加子路徑的主路徑。-Path 值決定哪個提供者將路徑連接並添加路徑分隔符。

它提供 \ 分隔符來連接路徑。-ChildPath 參數指定要附加到 -Path 參數值的路徑。

例如,以下命令使用 Join-Path 將主路徑 hello 與子路徑 world 結合。

Join-Path -Path "hello" -ChildPath "world"

輸出:

powershell 連接路徑 - 輸出 1

Join-Path cmdlet 只能接受兩個字符串輸入或一個 -ChildPath 參數。使用單一命令,您無法使用 Join-Path 將超過兩個字符串組合成文件路徑。

您需要使用多個 Join-Path 語句一起使用,才能在 PowerShell 中將超過兩個字符串組合成文件路徑。

使用 Join-Path 值將多於兩個字符串組合成 PowerShell 中的文件路徑

由於 Join-Path 路徑值可以發送到管道,您可以將多個 Join-Path 語句一起通過管道來組合多於兩個字符串成文件路徑。

例如,以下代碼組合所有四個字符串並創建單一路徑 C:\content\software\PowerShell。

Join-Path -Path "C:" -ChildPath "content" | Join-Path -ChildPath "software" | Join-Path -ChildPath "PowerShell"

在這段代碼片段中,您使用 Join-Path cmdlet 多次來逐步構建文件路徑。每次調用 Join-Path 時,您都取當前路徑並通過添加另一個段來擴展它。

這是通過將每個 Join-Path 操作的輸出通過管道到下一個操作完成的,實際上是逐步構建最終的文件路徑。-ChildPath 參數在這裡是關鍵,因為它指定要附加到現有路徑的額外段。

因此,該代碼有效地通過結合基本路徑 C: 與後續字符串 content、software 和 PowerShell 來創建完整的文件路徑。

輸出:

powershell 結合路徑 - 輸出 2

在 PowerShell 中結合多個文件路徑和子路徑

結合多個路徑和子路徑的主要目的是在 PowerShell 中創建完全限定的文件路徑。通過瞭解如何結合多個路徑和子路徑,您可以有效地動態構建文件路徑,增強 PowerShell 腳本的靈活性和可讀性。

Join-Path -Path "Path1\", "Path2\" -ChildPath "Folder\File.txt"

在這段代碼片段中,您正在使用 Join-Path cmdlet 來合併兩個路徑(Path1 和 Path2)以及一個子路徑(Folder\File.txt)。通過通過 -Path 參數傳遞根路徑的數組,並使用 -ChildPath 指定子路徑,您正在創建完全限定的文件路徑。

因此,輸出呈現了通過將每個路徑與提供的子路徑結合形成的完整文件路徑。這種方法提供了一種將多個路徑集成到單一路徑中的簡單方式,增強了您的 PowerShell 腳本的靈活性。

輸出:

powershell 合併路徑 - 輸出 3

在 PowerShell 中結合文件系統驅動器的根與子路徑

在處理多個路徑根和子路徑時,Join-Path cmdlet 與數組輸入及 -ChildPath 參數配合提供了一種高效的方式來合併不同的路徑組件成為一致的文件路徑。

在 Get-PSDrive cmdlet 的上下文中,-PSProvider 參數根據它們所屬的提供者來篩選驅動器。

Get-PSDrive -PSProvider filesystem | ForEach-Object { $_.root } | Join-Path -ChildPath "SubFolder"

在這段代碼片段中,您使用 Get-PSDrive cmdlet 獲取所有文件系統驅動器的根路徑。然後,您將結果通過管道傳遞給 ForEach-Object 以提取每個根路徑。

這些根路徑隨後與子路徑 SubFolder 一起傳遞給 Join-Path。Join-Path cmdlet 將每個根路徑與子路徑結合,創建完全限定的文件路徑。

這種方法使您能夠根據當前系統上可訪問的驅動器的根路徑動態生成文件路徑。

輸出:

powershell 合併路徑 - 輸出 4

結論

總之,PowerShell 中的 Join-Path cmdlet 是將字符串組合成單一文件路徑的有價值工具。雖然它通常只接受兩個字符串輸入或一個 -ChildPath 參數,但您可以通過將多個 Join-Path 語句串聯在一起來克服這一限制。

本文探討了使用 Join-Path 將多個字符串組合成文件路徑的各種方法,包括連續多次使用 cmdlet 和將一個 Join-Path 操作的輸出傳遞給另一個。通過理解這些技術,您可以根據在 PowerShell 腳本中的不同場景和需求動態構建文件路徑。