使用Test-path检查多个路径

时间:2015-01-21 16:53:08

标签: powershell

在我的函数中,我有3个没有强制性且没有位置参数Folder1, Folder2 and Folder3,在运行我的函数之前,如果文件夹存在,我想检查每个选定的参数。它必须是动态的,因为用户可以随机指定一个或两个或所有树文件夹。 提前谢谢。

1 个答案:

答案 0 :(得分:5)

您可以将数组传递给Test-Path

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

修改

所以我从你的评论中相信你有类似的东西:

$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