Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 使用测试路径检查多路径_Powershell - Fatal编程技术网

Powershell 使用测试路径检查多路径

Powershell 使用测试路径检查多路径,powershell,Powershell,在我的函数中,我有3个无强制参数和无位置参数Folder1、Folder2和Folder3,在运行我的函数之前,如果文件夹存在,我想检查每个选定参数。它必须是动态的,因为用户可以随机指定一个、两个或所有树文件夹。 提前感谢。您可以将数组传递到测试路径 Test-Path c:, d:, e: True True True 编辑 所以我相信从你的评论来看,你有这样的想法: $mypaths = "c:","d:",$null Test-Path $mypaths 这会导致以下错误: Test-

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

您可以将数组传递到测试路径

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

你好,Micky,我在使用您的解决方案时遇到一个错误
测试路径:无法将参数绑定到参数“Path”,因为它是一个空字符串
您是否按原样尝试了我的解决方案或使用了其他一些变量?此解决方案仅在三个变量为$true时有效,但正如我所说的,它必须是动态的,函数参数可以输入也可以不输入。我认为更惯用的编写方法应该是
$valid=$mypath |其中{$\u-和(测试路径$\u)}