Проверяет, существуют ли все элементы пути.

Синтаксис

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 проверяет, существуют ли все элементы пути. Он возвращает значение TRUE ($true), если все элементы существуют, и значение FALSE ($false) в противном случае. Также он может определить, допустим ли синтаксис пути и на какой элемент указывает путь — контейнер или конечный элемент ("лист" дерева каталогов).

Параметры

-Credential <PSCredential>

Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь".

Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, созданных командлетом Get-Credential. При вводе имени пользователя система запросит пароль.

Этот параметр не поддерживается ни одним из установленных с 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 используется в том виде, в котором оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретировать как escape-символы.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Path <string[]>

Задает путь, который нужно проверить. Подстановочные знаки разрешены. Путь, содержащий пробелы, необходимо заключать в кавычки. Имя параметра ("Path") указывать необязательно.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue, ByPropertyName)

Принимать подстановочные знаки?

false

-PathType <TestPathType>

Сообщает, имеет ли последний элемент пути определенный тип. Этот параметр возвращает значение TRUE, если элемент имеет указанный тип, и значение FALSE в противном случае.

Допустимые значения:

-- Container: элемент, содержащий другие элементы, такие как каталог или раздел реестра.

-- Leaf: элемент, не содержащий других элементов, например файл.

-- Any: либо контейнер, либо конечный элемент. Сообщает, имеет ли последний элемент пути определенный тип. Возвращает TRUE, если элемент имеет указанный тип, и FALSE в противном случае.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-UseTransaction

Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе about_Transactions.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.String

Строку, содержащую путь (но не литеральный путь), можно передать командлету Test-Path по конвейеру.

Выходные данные

System.Boolean

Командлет возвращает значение "True", если путь существует, и "False" в противном случае.

Примечания

Командлеты, в именах которых содержится существительное Path (командлеты Path), оперируют именами путей и возвращают эти имена в сокращенном формате, который поддерживается всеми поставщиками Windows PowerShell. Они предназначены для использования в программах и скриптах, в которых требуется отображать имя пути или его часть в конкретном формате. Используйте их аналогично другим командам для работы с путями, таким как Dirname, Normpath, Realpath и Join.

Командлеты Path можно использовать с несколькими поставщиками, включая FileSystem, Registry и Certificate.

Командлет Test-Path предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PSProvider". Дополнительные сведения см. в разделе About_Providers.

Пример 1

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

Описание
-----------
Эта команда сообщает, существуют ли все элементы пути, т. е. каталог C:, каталог Documents and Settings и каталог NicoleH. Если какой-либо из элементов отсутствует, командлет возвращает 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 Buildings. (В случае длинного пути, такого как этот, введите первые несколько букв пути, а затем заполните путь с помощью клавиши TAB.)

Параметр Exclude используется для задания файлов, исключаемых из проверки. 

В данном случае, поскольку каталог содержит только DWG-файлы, результат выполнения команды — FALSE.






Пример 4

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

Описание
-----------
Эта команда сообщает, указывает ли хранящийся в переменной $profile путь на файл. В данном случае, поскольку профиль Windows PowerShell представляет собой файл с расширением .ps1, командлет возвращает 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

Описание
-----------
На примере этих команд показано применение командлета Test-Path к поставщику Registry Windows PowerShell. 

Первая команда проверяет правильность пути к разделу реестра Microsoft.PowerShell на компьютере. Если оболочка Windows PowerShell установлена правильно, командлет возвратит TRUE.

Командлет Test-Path корректно работает не со всеми поставщиками Windows PowerShell. Например, Test-Path можно использовать для проверки пути к разделу реестра, однако при использовании его для проверки пути к записи реестра он всегда будет возвращать FALSE, даже если запись присутствует.






См. также