仅获取目录中具有给定扩展名的文件

时间:2017-07-17 15:00:56

标签: powershell powershell-v5.0

我有一个指向目录的字符串变量。在此目录中是一个扩展名为.xyz的文件。如何在不知道文件名本身的情况下获取此文件的路径?

到目前为止,我有以下代码:

$dir = "C:\Temp\MyDir"
$xyzFiles = @(Get-ChildItem "$dir\*.xyz")
$file = $xyzFiles[0]

PowerShell中这是“走的路”吗?有更好的解决方案吗?

7 个答案:

答案 0 :(得分:3)

我会使用Get-ChildItem -FilterSelect-Object -First

$filepath = Get-ChildItem -Path $dir -Filter *.xyz |Select -First 1

答案 1 :(得分:3)

我建议使用Get-ChildItem' -include参数。

Get-ChildItem $dir -include *.xyz

答案 2 :(得分:0)

您可以使用Powershell中的管道功能提高效率。例如Get-ChildItem "$dir" | Where-Object {$_.FullName -match ".xyz$"}

这将获取扩展名为.xyz的文件。如果你有多个文件,你可以进一步缩小范围。

答案 3 :(得分:0)

您也可以尝试Get-Item -LiteralPath (Resolve-Path "$dir\*.xyz")

答案 4 :(得分:0)

在powerShell第5版中,您还可以尝试: Get-ChildItem $dir -Recurse -Include *.xyz

答案 5 :(得分:0)

这应该有效:

Get-ChildItem $dir -File | Where-Object { $_.Extension -eq ".xyz" }

答案 6 :(得分:0)

  

最简单的解决方案:

$xyzFiles = Get-ChildItem $dir -File '*.xyz'