提问人:Fitzgery 提问时间:7/21/2023 更新时间:7/21/2023 访问量:24
PowerShell 将数组与两个通配符变量匹配
PowerShell match array to two wildcard variables
问:
下午,我正在编写一些代码来验证数组是否包含两个特定的文件扩展名,并且在完成此操作时遇到了障碍。
我正在使用 Windows 窗体 OpenFileDialog 窗口并返回值 我想做的是验证所选文件(数组)是否包含(用于测试目的)a 和 a,然后再继续。我试过搞砸,但这适用于完全匹配,我玩过正则表达式,但这仍然让我感到困惑。$Files = $OpenFileDialog.FileNames
.txt
.log
-Contains
我试图检查的是没有选择两个或文件,每个只有一个,所以我认为循环不会像那样工作(也许会,我的大脑今天不想再工作了).txt
.log
答:
2赞
Santiago Squarzon
7/21/2023
#1
可以使用 GetExtension
方法获取扩展名和计算表达式,然后筛选组的计数大于的位置,如果有任何结果,则可以确保用户选择了 2 个或更多具有相同扩展名的文件。Group-Object
1
例:
$result = @(
'foo.txt'
'bar.log'
'baz.txt'
) | Group-Object { [System.IO.Path]::GetExtension($_) } |
Where-Object Count -GT 1
if ($result) {
# here is for the user selected 2 or more files with the same extension
}
评论
1赞
Fitzgery
7/21/2023
这是一个炎热的一分钟,但一如既往,感谢您的帮助!像魅力一样工作
评论
OpenFileDialog