PowerShell — Test-Path игнорирует имя файла

Как вы можете использовать Test-Path (или любую другую функцию), чтобы проверить, существует ли папка, игнорируя любые конечные имена файлов?

Мне нужно это, чтобы проверить, существует ли целевая папка, чтобы записать в нее выходной файл. Мой сценарий принимает параметр «полный путь», такой как «C:\Temp\myexport.csv», и мне нужно только знать, что C:\Temp существует, чтобы иметь возможность создать файл.

Спасибо

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
163
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Неважно .. Я недостаточно усердно гуглил:

$OutFile = "C:\Temp\myexport.csv"
if (!Test-Path -Path (Split-Path -Path $OutFile)) { 
    Write-Host "Invalid path" 
}

В качестве небольшой альтернативы вы можете использовать If(!(Test-Path -Path (Split-Path -Path $OutFile -Parent))) { Throw "$(Split-Path -Path $OutFile -Parent) does not exist." }, вы можете даже продолжить с Else { If(Test-Path -Path $OutFile) { Throw "$OutFile already exists." } }.

Compo 19.12.2020 03:01
Ответ принят как подходящий

попробуй это :

$OutFile = "C:\Temp\myexport.csv"
$Dir=[System.IO.Path]::GetDirectoryName($OutFile)

if (!(Test-Path $Dir)) { 
    Write-Host "Invalid path" 
}

Другие вопросы по теме