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 создан для таких задач?
С точки зрения реализации, проверка на существование директории перед выполнением операций является лучшей практикой. Речь идет о предсказуемости. Вы ведь не станете гонять в гонках на пустом баке, верно? Так и с чтением из или записью в несуществующую директорию.
См. также
Для получения дополнительной информации изучите следующие ссылки: