Resolve-Path

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

语法

Path (默认值)

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

LiteralPath

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

说明

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

示例

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

平铺字符(~)是当前用户主文件夹的速记表示法。 此示例显示 Resolve-Path 返回完全限定的路径值。

Resolve-Path ~
Path
----
C:\Users\User01

示例 2:解析 Windows 文件夹的路径

Resolve-Path -Path "windows"
Path
----
C:\Windows

C: 驱动器的根目录运行时,此命令将返回 Windows 驱动器中 C: 文件夹的路径。

示例 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 switch 参数时,它将返回表示从 $Env:TEMP 可执行文件的相对路径的 pwsh

$ExecutablePath = Get-Command -Name pwsh | Select-Object -ExpandProperty Source
Resolve-Path -Path $ExecutablePath -RelativeBasePath $Env:TEMP -Relative
..\..\..\..\..\Program Files\PowerShell\7\pwsh.exe

示例 8:解析隐藏项的路径

默认情况下,Resolve-Path 不返回隐藏项。 此示例使用 Force 参数解析隐藏项。 Get-Item 命令确认 .git 文件夹已隐藏。 在不使用 Resolve-Path 参数的情况下,使用 只返回可见项。 添加 Force 参数将返回所有项,包括隐藏项。

PS> Get-Item .git -Force

    Directory: D:\Git\PS-Docs\PowerShell-Docs

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d--h-           9/25/2024  4:46 PM                .git

PS> Resolve-Path .git*

Path
----
D:\Git\PS-Docs\PowerShell-Docs\.github
D:\Git\PS-Docs\PowerShell-Docs\.gitattributes
D:\Git\PS-Docs\PowerShell-Docs\.gitignore

PS> Resolve-Path .git* -Force

Path
----
D:\Git\PS-Docs\PowerShell-Docs\.git
D:\Git\PS-Docs\PowerShell-Docs\.github
D:\Git\PS-Docs\PowerShell-Docs\.gitattributes
D:\Git\PS-Docs\PowerShell-Docs\.gitignore

参数

-Credential

指定有权执行此作的用户帐户。 默认值为当前用户。

键入用户名(如 User01Domain01\User01),或传递 PSCredential 对象。 可以使用 cmdlet 创建 Get-Credential 对象。 如果键入用户名,此 cmdlet 会提示输入密码。

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

参数属性

类型:PSCredential
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Force

允许该 cmdlet 获取用户无法访问的项,例如隐藏文件或系统文件。 Force 参数不会替代安全限制。 实现因服务提供商而异。 有关详细信息,请参阅 about_Providers

此参数已在 PowerShell 7.5-preview.5 中添加。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-LiteralPath

指定要解析的路径。 LiteralPath 参数的值与类型完全相同。 不会将任何字符解释为通配字符。 如果路径包含转义字符,请将它括在单引号(')。 单引号告知 PowerShell 不要将任何字符解释为转义序列。

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False
别名:PSPath, LP

参数集

LiteralPath
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Path

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

参数属性

类型:

String[]

默认值:None
支持通配符:True
不显示:False

参数集

Path
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Relative

指示此 cmdlet 返回相对路径。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

Path
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
LiteralPath
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-RelativeBasePath

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

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

此参数已在 PowerShell 7.4 中添加。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

String

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

输出

PathInfo

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

String

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

备注

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

  • 所有平台:
    • rvpa

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

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

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