Test-Path
Determina se todos os elementos de um caminho existem.
Sintaxe
Path (Predefinição)
Test-Path
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <PSCredential>]
[-UseTransaction]
[-OlderThan <DateTime>]
[-NewerThan <DateTime>]
[<CommonParameters>]
LiteralPath
Test-Path
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PathType <TestPathType>]
[-IsValid]
[-Credential <PSCredential>]
[-UseTransaction]
[-OlderThan <DateTime>]
[-NewerThan <DateTime>]
[<CommonParameters>]
Description
O cmdlet Test-Path determina se todos os elementos do caminho existem.
Ele retorna $True se todos os elementos existirem e $False se algum estiver faltando.
Ele também pode dizer se a sintaxe do caminho é válida e se o caminho leva a um contêiner ou a um elemento terminal ou folha.
Se o Path for espaço em branco, $False será retornado.
Se o Path for uma cadeia de caracteres vazia, $null, matriz de $null ou matriz vazia, um erro não terminativo será retornado.
Exemplos
Exemplo 1: Testar um caminho
Test-Path -Path "C:\Documents and Settings\DavidC"
True
Este comando verifica se todos os elementos no caminho existem, ou seja, o diretório C:, o diretório Documents and Settings e o diretório DavidC.
Se algum estiver faltando, o cmdlet retornará $False.
Caso contrário, ele retorna $True.
Exemplo 2: Testar o caminho de um perfil
Test-Path -Path $profile
False
Test-Path -Path $profile -IsValid
True
Esses comandos testam o caminho do perfil do PowerShell.
O primeiro comando determina se todos os elementos no caminho existem.
O segundo comando determina se a sintaxe do caminho está correta.
Neste caso, o caminho é $False, mas a sintaxe está correta $True.
Esses comandos usam $profile, a variável automática que aponta para o local do perfil, mesmo que o perfil não exista.
Para obter mais informações sobre variáveis automáticas, consulte about_Automatic_Variables.
Exemplo 3: Verificar se existem ficheiros para além de um tipo especificado
Test-Path -Path "C:\CAD\Commercial Buildings\*" -Exclude *.dwg
False
Este comando verifica se há algum arquivo no diretório Commercial Buildings diferente de .dwg arquivos.
O comando usa o parâmetro Path para especificar o caminho. Como o caminho inclui um espaço, o caminho é colocado entre aspas. O asterisco no final do caminho indica o conteúdo do diretório do Edifício Comercial. Com caminhos longos, como este, digite as primeiras letras do caminho e use a tecla TAB para concluir o caminho.
O comando especifica o parâmetro Excluir para especificar os arquivos que serão omitidos da avaliação.
Nesse caso, como o diretório contém apenas .dwg arquivos, o resultado é $False.
Exemplo 4: Verificar se há um arquivo
Test-Path -Path $profile -PathType leaf
True
Este comando verifica se o caminho armazenado na variável $profile leva a um arquivo.
Nesse caso, como o perfil do PowerShell é um arquivo .ps1, o cmdlet retorna $True.
Exemplo 5: Verificar caminhos no Registo
Esses comandos usam Test-Path com o provedor de registro do PowerShell.
O primeiro comando testa se o caminho do Registro do Microsoft.PowerShell chave do Registro está correto no sistema.
Se o PowerShell estiver instalado corretamente, o cmdlet retornará $True.
Importante
Test-Path não funciona corretamente com todos os provedores do PowerShell.
Por exemplo, você pode usar Test-Path para testar o caminho de uma chave do Registro, mas se você usá-lo para testar o caminho de uma entrada do Registro, ele sempre retornará $False, mesmo que a entrada do Registro esteja presente.
Test-Path -Path "HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"
True
Test-Path -Path "HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy"
False
Exemplo 6: Testar se um arquivo é mais recente do que uma data especificada
Este comando usa o parâmetro dinâmico NewerThan para determinar se o arquivo "PowerShell.exe" no computador é mais recente que "13 de julho de 2009".
O parâmetro NewerThan funciona apenas em unidades do sistema de arquivos.
Test-Path $pshome\PowerShell.exe -NewerThan "July 13, 2009"
True
Exemplo 7: Testar um caminho com null como o valor
O erro retornado para null, matriz de null ou matriz vazia é um erro que não termina.
Pode ser suprimido usando -ErrorAction SilentlyContinue.
O exemplo a seguir mostra todos os casos que retornam o erro NullPathNotPermitted.
Test-Path $null
Test-Path $null, $null
Test-Path @()
Test-Path : Cannot bind argument to parameter 'Path' because it is null.
At line:1 char:11
+ Test-Path $null
+ ~~~~~
+ CategoryInfo : InvalidData: (:) [Test-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand
Exemplo 8: Testar um caminho com espaço em branco como valor
Quando um espaço em branco é ou uma cadeia de caracteres vazia fornecida para o parâmetro -Path, ele retorna false.
O exemplo a seguir mostra espaço em branco e cadeia de caracteres vazia.
Test-Path ' '
Test-Path ''
False
Test-Path : Cannot bind argument to parameter 'Path' because it is an empty string.
At line:1 char:11
+ Test-Path ''
+ ~~
+ CategoryInfo : InvalidData: (:) [Test-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand
Parâmetros
-Credential
Observação
Esse parâmetro não é suportado por nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar esse cmdlet, use Invoke-Command.
Propriedades dos parâmetros
| Tipo: | PSCredential |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-Exclude
Especifica os itens que este cmdlet omite. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como "*.txt". Caracteres coringa são permitidos.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Filter
Especifica um filtro no formato ou idioma do provedor. O valor desse parâmetro qualifica o parâmetro Path. A sintaxe do filtro, incluindo o uso de caracteres curinga, depende do provedor. Os filtros são mais eficientes do que outros parâmetros, porque o provedor os aplica quando recupera os objetos em vez de fazer com que o PowerShell filtre os objetos depois que eles são recuperados.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Include
Especifica os caminhos que este cmdlet testa. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como "*.txt". Caracteres coringa são permitidos.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-IsValid
Indica que esse cmdlet testa a sintaxe do caminho, independentemente de os elementos do caminho existirem.
Este cmdlet retorna $True se a sintaxe do caminho é válida e $False se não for.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-LiteralPath
Especifica um caminho a ser testado. Ao contrário de Path, o valor do parâmetro LiteralPath é usado exatamente como está digitado. Nenhum caractere é interpretado como um caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | PSPath |
Conjuntos de parâmetros
LiteralPath
| Position: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-NewerThan
Especifique uma hora como um objeto DateTime .
Propriedades dos parâmetros
| Tipo: | DateTime |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-OlderThan
Especifique uma hora como um objeto DateTime .
Propriedades dos parâmetros
| Tipo: | DateTime |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Path
Especifica um caminho a ser testado. Caracteres coringa são permitidos. Se o caminho incluir espaços, coloque-o entre aspas.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
Path
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-PathType
Especifica o tipo do elemento final no caminho.
Este cmdlet retorna $True se o elemento for do tipo especificado e $False se não for.
Os valores aceitáveis para este parâmetro são:
- Contentor. Um elemento que contém outros elementos, como um diretório ou uma chave do Registro.
- Folha. Um elemento que não contém outros elementos, como um arquivo.
- Qualquer. Um recipiente ou uma folha.
Informa se o elemento final no caminho é de um tipo específico.
Atenção
Até a versão 6.1.2 do PowerShell, quando as opções IsValid e PathType são especificadas juntas, o cmdlet Test-Path ignora a opção PathType e só valida o caminho sintático sem validar o tipo de caminho.
De acordo com edição #8607, corrigir esse comportamento pode ser uma mudança de quebra em uma versão futura, onde os IsValid e PathType switches pertencem a conjuntos de parâmetros separados e, portanto, não podem ser usados juntos evitando essa confusão.
Propriedades dos parâmetros
| Tipo: | TestPathType |
| Default value: | None |
| Valores aceites: | Any, Container, Leaf |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Tipo |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-UseTransaction
Inclui o comando na transação ativa. Este parâmetro é válido somente quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Usetx |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
String
Você pode canalizar uma cadeia de caracteres que contém um caminho, mas não um caminho literal, para esse cmdlet.
Saídas
Boolean
O cmdlet retorna um valor booleano .
Notas
Os cmdlets que contêm o substantivo Caminho
O Test-Path é projetado para trabalhar com os dados expostos por qualquer provedor.
Para listar os provedores disponíveis em sua sessão, digite Get-PSProvider.
Para obter mais informações, consulte about_Providers.