Проверяет, существуют ли все элементы пути.
Синтаксис
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, даже если запись присутствует.