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: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
参数
-Credential
指定有权执行此操作的用户帐户。 默认为当前用户。
键入用户名,例如 User01
或 Domain01\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 会返回一个字符串,表示从 RelativeBasePath 到 Path 的相对路径。
此参数已在 PowerShell 7.4 中添加。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将包含路径的字符串传递给此 cmdlet。
输出
默认情况下,此 cmdlet 会返回一个 PathInfo 对象。
如果指定 Relative 参数,此 cmdlet 将返回已解析路径的字符串值。
备注
PowerShell 包含 Resolve-Path
的以下别名:
- 所有平台:
rvpa
*-Path
cmdlet 适用于 FileSystem、注册表和证书提供程序。
Resolve-Path
旨在与任何提供程序配合使用。 若要列出会话中可用的提供程序,请键入 Get-PSProvider
。 有关详细信息,请参阅 about_providers。
Resolve-Path
仅解析现有路径。 它不能用于解析尚不存在的位置。