我有一个指向目录的字符串变量。在此目录中是一个扩展名为.xyz
的文件。如何在不知道文件名本身的情况下获取此文件的路径?
到目前为止,我有以下代码:
$dir = "C:\Temp\MyDir"
$xyzFiles = @(Get-ChildItem "$dir\*.xyz")
$file = $xyzFiles[0]
PowerShell中这是“走的路”吗?有更好的解决方案吗?
答案 0 :(得分:3)
我会使用Get-ChildItem -Filter
和Select-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'