PowerShell:
Проверка существования директории
Как:
Используйте командлет Test-Path
для проверки на существование директории. Это командлет возвращает булево значение: $true
, если директория существует, и $false
, если нет.
# Проверка существования директории
$directoryPath = "C:\ExampleFolder"
$exists = Test-Path $directoryPath
Write-Output $exists # Выводит True или False
Пример вывода:
True
или если директории не существует:
False
Вы также можете использовать его напрямую в условном операторе if
:
# Использование Test-Path в условном операторе
if (Test-Path $directoryPath) {
Write-Output "Ага, она тут."
} else {
Write-Output "Неа, не нахожу."
}
Подробнее
Командлет Test-Path
существует начиная с PowerShell v1.0. Это не просто утилита для одной задачи; наряду с директориями, он может использоваться для проверки файлов, ключей реестра и других объектов через различные ‘пути’.
Есть альтернативы. PowerShell построен на .NET Framework, так что вы могли бы использовать методы .NET, если захотите:
[system.io.directory]::Exists($directoryPath)
Это служит той же цели, но работает “длинным путём”. Зачем заморачиваться, когда Test-Path
создан для таких задач?
С точки зрения реализации, проверка на существование директории перед выполнением операций является лучшей практикой. Речь идет о предсказуемости. Вы ведь не станете гонять в гонках на пустом баке, верно? Так и с чтением из или записью в несуществующую директорию.
См. также
Для получения дополнительной информации изучите следующие ссылки: