2015-01-21 3 views
1

В моей функции у меня нет 3 обязательных и позиционных параметров Folder1, Folder2 and Folder3, перед запуском моей функции я хотел бы проверить каждый выбранный параметр, если папка существует. Это должно быть что-то динамическое, потому что пользователь может задавать случайным образом одну или две или все папки дерева. Спасибо заранее.Проверить несколько путей с помощью тестового пути

ответ

3

Вы можете передать массив Test-Path

Test-Path c:, d:, e: 
True 
True 
True 

EDIT

Так что я считаю, из Вашего комментария, что у вас есть что-то вроде этого:

$mypaths = "c:","d:",$null 
Test-Path $mypaths 

, выдавшей следующая погрешность:

Test-Path : Cannot bind argument to parameter 'Path' because it is null. 

Тогда вы можете попробовать это:

$mypaths = "c:","d:",$null 
$mypaths | Foreach { if ($_){Test-Path $_}} 

что приводит только два действительных путей.

Таким образом, вы могли бы рассмотреть возможность проверить возвращаемые значения:

$valid = $mypaths | Foreach { if ($_){Test-Path $_}} 

write-host "Variable `$mypaths contains $($mypaths.count) paths, and $($valid.count) were found valid" 

который выводит:

Variable $mypaths contains 3 paths, and 2 were found valid 
+0

Здравствуйте Мики, я получаю сообщение об ошибке, когда я использовать ваше решение 'Test-Path: Невозможно привязать аргумент параметр «Путь», потому что это пустая строка. – kekimian

+0

Вы пытались решить мое решение как есть или с некоторыми другими переменными? –

+0

Это решение работает только в том случае, если три переменные равны $ true, но, как я сказал, он должен быть динамическим, параметр функции может быть введен или нет. – kekimian

Смежные вопросы