Если нужно проверить, существует ли папка или файл в скрипте PowerShell, то нужно воспользоваться командой "Test-Path". Она возвращает "True", если файл или папка существует, и "False", если файла или папки нет.
#Обновлено 21 мая 2020 года $fpath = "C:\output.xml" if ($isfile) { Write-host "Файл существует" } else { Write-host "Файл не существует" }
Более подробную информацию о возможностях команды “Test-Path” можно узнать, введя в консоли PowerShell команду "man Test-Path". С помощью этой команды можно работать не только с папками и файлами, но и, к примеру, с переменными окружения Windows и ветками реестра.
Спасибо автору, выручил. Только у меня была проблема: «True» которая хранится в $isfile не равна строчной «True». решилось просто добавлением строки:
[string]$isfile = $(Test-Path $fpath)
Комментарий by Maks — 04.12.2018 @ 15:57
Убейте автора поста! Кто так пишет?
Во первых: Test-Path $fpath возвращает значение $True или $False, но не «True» и не «False»
Во вторых: команда IF не нуждается в сравнении с $true или $false.
Правильная строка сравнения будет:
if ($isfile) {
Write-host «Файл существует»
}
else {
Write-host «Файл не существует»
}
Комментарий by Scorpion — 15.02.2019 @ 15:03
Спасибо за более корректный код! Вообще, когда вижу свою исходники 2-3 летней давности, то прям ругаю себя. Этому посту уже более 4 лет, тогда с PowerShell я только знакомился.
Комментарий by Alexey — 27.02.2019 @ 13:05
Автор — чудак на букву М, код — НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!
Как правильно заметил комментатор выше — там логическое Истина/Ложь, которое некорректно сравнивать со строкой
if (!(Test-Path $fpath)) — так будет работать.
Из-за этой говностатьи потратил полчаса пытаясь понять какого Х оно не работает, с приличного же вроде сайта копирнул.
Комментарий by Станислав — 25.04.2020 @ 20:47
Целых полчаса! ужас! 🙂
Я за 6 лет уже забыл, что там писал.
Вообще странно, что так ценящий время не знает английского 🙂
Комментарий by Alexey — 21.05.2020 @ 15:37
А где в примере, собственно, Test-Path? ¯\_(ツ)_/¯
Комментарий by Читатель — 31.07.2020 @ 15:14
Непонятно, что такое $isfile и каким образом он определяет, есть файл или нет.
Комментарий by Alex — 23.10.2020 @ 15:47