Resolve-Path

解析路徑中的通配符,並顯示路徑內容。

Syntax

Resolve-Path
       [-Path] <string[]>
       [-Relative]
       [-RelativeBasePath <string>]
       [-Credential <pscredential>]
       [<CommonParameters>]
Resolve-Path
       -LiteralPath <string[]>
       [-Relative]
       [-RelativeBasePath <string>]
       [-Credential <pscredential>]
       [<CommonParameters>]

Description

Cmdlet Resolve-Path 會顯示符合指定位置之通配符模式的專案和容器。 比對可以包含檔案、資料夾、登錄機碼,或任何其他可從 PSDrive 提供者存取的物件。

範例

範例 1:解決主資料夾路徑

tilde 字元 (~) 是目前使用者主資料夾的速記表示法。 此範例示範 Resolve-Path 傳回完整路徑值。

Resolve-Path ~

Path
----
C:\Users\User01

範例 2:解決 Windows 資料夾的路徑

Resolve-Path -Path "windows"

Path
----
C:\Windows

從磁碟驅動器的C:根目錄執行時,此命令會傳回磁碟驅動器中C:資料夾的路徑Windows

範例 3:取得 Windows 資料夾中的所有路徑

"C:\windows\*" | Resolve-Path

此命令會傳回資料夾中的所有檔案和資料夾 C:\Windows 。 命令會使用管線運算子 (|) 將路徑字串傳送至 Resolve-Path

範例 4:解析 UNC 路徑

Resolve-Path -Path "\\Server01\public"

此命令會解析通用命名約定 (UNC) 路徑,並傳回路徑中的共用。

範例 5:取得相對路徑

Resolve-Path -Path "c:\prog*" -Relative

.\Program Files
.\Program Files (x86)
.\programs.txt

此命令會傳回磁碟驅動器根目錄的 C: 相對路徑。

範例 6:解析包含括弧的路徑

這個範例會使用 LiteralPath 參數來解析子資料夾的路徑 Test[xml] 。 使用 LiteralPath 會使括弧視為一般字元,而不是正則表示式。

Resolve-Path -LiteralPath 'test[xml]'

範例 7:解析相對於另一個資料夾的路徑

此範例會 使用 RelativeBasePath 參數來解析相對於 的 pwsh 可執行文件 $env:TEMP路徑。 當命令包含 Relative 參數時,它會傳回 String,此字串 代表可執行檔 $env:TEMPpwsh 相對路徑。

$ExecutablePath = Get-Command -Name pwsh | Select-Object -ExpandProperty Source
Resolve-Path -Path $ExecutablePath -RelativeBasePath $env:TEMP -Relative

..\..\..\..\..\Program Files\PowerShell\7\pwsh.exe

參數

-Credential

指定具有執行此動作許可權的用戶帳戶。 預設為目前使用者。

輸入使用者名稱,例如 User01Domain01\User01,或傳遞 PSCredential 物件。 您可以使用 Cmdlet 建立 PSCredential 物件 Get-Credential 。 如果您輸入使用者名稱,此 Cmdlet 會提示您輸入密碼。

任何與 PowerShell 一起安裝的提供者都不支援此參數。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

指定要解析的路徑。 LiteralPath 參數的值會完全與類型一樣使用。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引號 (') 括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

指定要解析的 PowerShell 路徑。 此為必要參數。 您也可以使用管線將路徑字串傳送至 Resolve-Path。 允許通配符。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Relative

指出這個 Cmdlet 會傳回相對路徑。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RelativeBasePath

指定要解析相對路徑的路徑。 當您使用此參數時,Cmdlet 會傳回 已解析路徑的 System.Management.Automation.PathInfo 物件。

當您搭配 Relative switch 參數使用此參數時,Cmdlet 會傳回字串,代表 RelativeBasePathPath 的相對路徑

此參數已在PowerShell 7.4中新增。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

String

您可以使用管線傳送包含此 Cmdlet 路徑的字串。

輸出

PathInfo

根據預設,此 Cmdlet 會 傳回 PathInfo 物件。

String

如果您指定 Relative 參數,這個 Cmdlet 會傳回已解析路徑的字串值。

備註

PowerShell 包含下列的 Resolve-Path別名:

  • 所有平臺:
    • rvpa

Cmdlet *-Path 會與 FileSystemRegistryCertificate 提供者搭配使用

Resolve-Path 是設計來與任何提供者搭配使用。 若要列出工作階段中可用的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_providers

Resolve-Path 只會解析現有的路徑。 它無法用來解析尚未存在的位置。