本来以为 Selet-Object 应该能发挥作用,但看过帮助文档之后发现对于筛选来说它只能执行比较简单的操作(First, Last, Unique, Skip, and Index)。
目前我的方法是用%
,获取文件列表之后,根据后缀属性用if
判断,然后再直接返回。
$FileList = $Dir | Get-ChildItem -Recurse -File
$PyFileList = $FileList | ForEach-Object { if ($_.Extension -eq '.py') { $_ } }
这种办法目前用起来也还可以,但感觉用if(){}
,总是不 PowerShellic 。
那么针对这种需求的最佳实践是什么?
高度怀疑应该是有更好的方式的,如果没有的话自己写个 Cmdlet,倒是不错,直接传递脚本块儿就根据布尔值返回对象,从而免去各种括号。这个需求是高频的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.