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 комментариев на «“PowerShell. Проверить существует ли файл или папка”»

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *