PowerShell. Проверить существует ли файл или папка

Если нужно проверить, существует ли папка или файл в скрипте 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 и ветками реестра.


7 комментариев »

  1. Спасибо автору, выручил. Только у меня была проблема: «True» которая хранится в $isfile не равна строчной «True». решилось просто добавлением строки:
    [string]$isfile = $(Test-Path $fpath)

    Комментарий by Maks — 04.12.2018 @ 15:57

  2. Убейте автора поста! Кто так пишет?
    Во первых: Test-Path $fpath возвращает значение $True или $False, но не «True» и не «False»
    Во вторых: команда IF не нуждается в сравнении с $true или $false.
    Правильная строка сравнения будет:
    if ($isfile) {
    Write-host «Файл существует»
    }
    else {
    Write-host «Файл не существует»
    }

    Комментарий by Scorpion — 15.02.2019 @ 15:03

  3. Спасибо за более корректный код! Вообще, когда вижу свою исходники 2-3 летней давности, то прям ругаю себя. Этому посту уже более 4 лет, тогда с PowerShell я только знакомился.

    Комментарий by Alexey — 27.02.2019 @ 13:05

  4. Автор — чудак на букву М, код — НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!НЕРАБОЧИЙ!
    Как правильно заметил комментатор выше — там логическое Истина/Ложь, которое некорректно сравнивать со строкой
    if (!(Test-Path $fpath)) — так будет работать.
    Из-за этой говностатьи потратил полчаса пытаясь понять какого Х оно не работает, с приличного же вроде сайта копирнул.

    Комментарий by Станислав — 25.04.2020 @ 20:47

  5. Целых полчаса! ужас! 🙂
    Я за 6 лет уже забыл, что там писал.
    Вообще странно, что так ценящий время не знает английского 🙂

    Комментарий by Alexey — 21.05.2020 @ 15:37

  6. А где в примере, собственно, Test-Path? ¯\_(ツ)_/¯

    Комментарий by Читатель — 31.07.2020 @ 15:14

  7. Непонятно, что такое $isfile и каким образом он определяет, есть файл или нет.

    Комментарий by Alex — 23.10.2020 @ 15:47

RSS feed for comments on this post. TrackBack URL

Leave a comment







MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика