2017-07-17 119 views
1

我有一个指向目录的字符串变量。在这个目录中是一个扩展名为.xyz的单个文件。如何获得这个文件的路径,而不知道文件名本身?获取目录中给定扩展名的文件

我有下面的代码至今:

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

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

回答

2

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

Get-ChildItem $dir -include *.xyz

0

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

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

+0

为什么呢? '-include'好得多 – 4c74356b41

3

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

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

为什么这个答案比上面的'-include'解决方案有更多的upvotes? –

0

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

0

在PowerShell中5版本,你也可以试试这个: Get-ChildItem $dir -Recurse -Include *.xyz

相关问题