38
我想选择目录中的任何一个“.xls”文件。问题是dir命令可以返回不同的类型。使用PowerShell查找与模式匹配的第一个文件
gci *.xls
将返回
- 对象[]如果有一个以上的文件
- 的FileInfo如果恰好有一个文件
- 空,如果没有文件
我可以处理null,但我怎样才能选择“第一个”文件?
我想选择目录中的任何一个“.xls”文件。问题是dir命令可以返回不同的类型。使用PowerShell查找与模式匹配的第一个文件
gci *.xls
将返回
我可以处理null,但我怎样才能选择“第一个”文件?
您可以强制的PowerShell成返回一个数组,即使只有一个项目存在通过包装声明为@(...)
:
@(gci *.xls)[0]
会为每一个你的三个情况下工作:
也有-First
参数Select-Object
:
Get-ChildItem -Filter *.xls | Select-Object -First 1
gci -fi *.xls | select -f 1
其作品几乎上述相同,除了名单因为管道在第一个项目之后被中止,所以文件不需要完全被Get-ChildItem
枚举。当有许多文件与过滤器匹配时,这可能会有所不同。