Resolve-Path

解析路径中的通配符并显示路径内容。

语法

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

说明

Resolve-Path cmdlet 在指定位置显示与通配符模式匹配的项目和容器。 匹配项可以包括文件、文件夹、注册表项或可从 PSDrive 提供程序访问的任何其他对象。

示例

示例 1:解析主文件夹路径

波形符 (~) 是当前用户主文件夹的简写符号。 此示例显示 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 参数解析可执行文件相对于$env:TEMP的路径pwsh。 当命令包含 Relative 开关参数时,它将返回一个字符串,表示从 $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 对象。 可以使用 Get-Credential cmdlet 创建 PSCredential 对象。 键入用户名时,此 cmdlet 会提示输入密码。

随同 PowerShell 一起安装的任何提供程序都不支持此参数。

类型:PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-LiteralPath

指定要解析的路径。 LiteralPath 参数的值严格按照所键入的形式使用。 不会将任何字符解释为通配字符。 如果路径包括转义符,请将其括在单引号 (') 中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。

类型:String[]
别名:PSPath, LP
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Path

指定要解析的 PowerShell 路径。 此参数是必需的。 还可以通过管道将路径字符串传递给 Resolve-Path。 允许使用通配符。

类型:String[]
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:True

-Relative

指示此 cmdlet 返回相对路径。

类型:SwitchParameter
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-RelativeBasePath

指定要从中解析相对路径的路径。 使用此参数时,该 cmdlet 会返回已解析路径的 System.Management.Automation.PathInfo 对象。

将此参数与 Relative 开关参数一起使用时,该 cmdlet 会返回一个字符串,表示从 RelativeBasePathPath 的相对路径。

此参数已在 PowerShell 7.4 中添加。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

String

可以通过管道将包含路径的字符串传递给此 cmdlet。

输出

PathInfo

默认情况下,此 cmdlet 会返回一个 PathInfo 对象。

String

如果指定 Relative 参数,此 cmdlet 将返回已解析路径的字符串值。

备注

PowerShell 包含 Resolve-Path 的以下别名:

  • 所有平台:
    • rvpa

*-Path cmdlet 适用于 FileSystem注册表证书提供程序。

Resolve-Path 旨在与任何提供程序配合使用。 若要列出会话中可用的提供程序,请键入 Get-PSProvider。 有关详细信息,请参阅 about_providers

Resolve-Path 仅解析现有路径。 它不能用于解析尚不存在的位置。