确定路径的所有元素是否存在。

语法

Test-Path [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {<Any> | <Container> | <Leaf>}] [-UseTransaction] [<CommonParameters>]

Test-Path [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {<Any> | <Container> | <Leaf>}] [-UseTransaction] [<CommonParameters>]

说明

Test-Path cmdlet 确定路径的所有元素是否存在。如果所有元素都存在,它将返回 True ($true);如果缺少任一元素,则返回 False ($false)。它还指示路径语法是否有效,以及路径是指向容器还是终端(叶)元素。

参数

-Credential <PSCredential>

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

键入用户名,例如“User01”或“Domain01\User01”。或者,输入 PSCredential 对象,例如由 Get-Credential cmdlet 生成的对象。如果键入用户名,则将提示您输入密码。

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Exclude <string[]>

忽略指定项。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Filter <string>

以提供程序的格式或语言指定筛选器。此参数的值对 Path 参数进行限定。筛选器的语法(包括通配符的使用)取决于提供程序。筛选器比其他参数更有效,因为提供程序是在检索对象时应用筛选器,而不是在检索对象后再由 Windows PowerShell 筛选对象。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Include <string[]>

只测试指定的路径。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-IsValid

确定路径的语法是否正确(不管路径的元素是否存在)。如果路径语法有效,则此参数返回 TRUE,否则返回 FALSE。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-LiteralPath <string[]>

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

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Path <string[]>

指定要测试的路径。允许使用通配符。如果路径包括空格,请将其括在引号中。参数名(“Path”)为可选项。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-PathType <TestPathType>

指示路径中的最后一个元素是否为特定类型。如果元素为指定的类型,则此参数返回 TRUE,如果不是,则返回 FALSE。

有效值包括:

-- Container:包含其他元素的元素,例如目录或注册表项。

-- Leaf:不包含其他元素的元素,例如文件。

-- Any:Container 或 Leaf。指示路径中的最后一个元素是否为特定类型。如果元素为指定的类型,则返回 True;如果不是,则返回 False。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-UseTransaction

将命令包含在活动事务中。仅当正在执行事务时,此参数才有效。有关详细信息,请参阅 about_Transactions。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.String

可以通过管道将包含路径(但不是文本路径)的字符串传递给 Test-Path。

输出

System.Boolean

如果连接正常工作,则该 cmdlet 将返回“True”;否则,返回“False”。

说明

包含 Path 名词的 cmdlet (Path cmdlet) 采用路径名称作为参数,以所有 Windows PowerShell 提供程序都能够解释的简明格式返回名称。这些 cmdlet 用于需要在其中以特定格式显示全部或部分路径名称的程序或脚本中。您可以像使用 Dirname、Normpath、Realpath、Join 或其他路径操作程序那样使用这些 cmdlet。

可以将路径 cmdlet 与某些提供程序一起使用,包括 FileSystem、Registry 和 Certificate 提供程序。

Test-Path cmdlet 可使用由任何提供程序公开的数据。要列出会话中可用的提供程序,请键入“Get-PSProvider”。有关详细信息,请参阅 about_Providers。

示例 1

C:\PS>test-path -path "C:\Documents and Settings\NicoleH"

说明
-----------
此命令指示路径中的所有元素(即 C: 目录、Documents and Settings 目录和 NicoleH 目录)是否存在。如果缺少任一元素,则该 cmdlet 将返回 FALSE。否则,返回 TRUE。






示例 2

C:\PS>test-path -path $profile

C:\PS>test-path -path $profile -IsValid

说明
-----------
这些命令测试指向 Windows PowerShell 配置文件的路径。

第一条命令确定路径中的所有元素是否都存在。第二条命令确定路径的语法是否正确。在此示例中,路径为 False,但语法是正确的 (True)。这些命令使用自动变量 $profile 指向配置文件所在位置,即使配置文件不存在也是如此。

有关自动变量的详细信息,请参阅 about_Automatic_Variables。






示例 3

C:\PS>test-path -path "C:\CAD\Commercial Buildings\*" -exclude *.dwg

说明
-----------
此命令指示 Commercial Buildings 目录中是否存在除 .dwg 文件以外的任何文件。

此命令使用 Path 参数来指定路径。因为该路径包含空格,所以用引号引起来。该路径末尾的星号指示 Commercial Building 目录的内容。(使用类似此路径的长路径时,应键入路径的前几个字母,然后使用 Tab 键完成路径。)

此命令使用 Exclude 参数指定计算过程中将省略的文件。

在本例中,因为该目录仅包含 .dwg 文件,所以结果为 FALSE。






示例 4

C:\PS>test-path -path $profile -pathtype leaf

说明
-----------
此命令指示 $profile 变量中所存储的路径是否指向文件。在本例中,因为 Windows PowerShell 配置文件是一个 .ps1 文件,所以该 cmdlet 返回 TRUE。






示例 5

C:\PS>test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

TRUE

C:\PS> test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy
FALSE

说明
-----------
这些命令对 Windows PowerShell 注册表提供程序使用 Test-Path cmdlet。

第一条命令测试系统上 Microsoft.PowerShell 注册表项的注册表路径是否正确。如果 Windows PowerShell 安装正确,则该 cmdlet 将返回 TRUE。

Test-Path 并不适用于所有 Windows PowerShell 提供程序。例如,您可以使用 Test-Path 测试注册表项的路径,但如果使用该命令来测试注册表条目的路径,则该命令始终返回 FALSE,即使该注册表条目存在也是如此。






另请参阅




目录