我有一个指向目录的字符串变量。在这个目录中是一个扩展名为.xyz
的单个文件。如何获得这个文件的路径,而不知道文件名本身?获取目录中给定扩展名的文件
我有下面的代码至今:
$dir = "C:\Temp\MyDir"
$xyzFiles = @(Get-ChildItem "$dir\*.xyz")
$file = $xyzFiles[0]
这是在PowerShell中“要走的路”?有更好的解决方案吗?
我有一个指向目录的字符串变量。在这个目录中是一个扩展名为.xyz
的单个文件。如何获得这个文件的路径,而不知道文件名本身?获取目录中给定扩展名的文件
我有下面的代码至今:
$dir = "C:\Temp\MyDir"
$xyzFiles = @(Get-ChildItem "$dir\*.xyz")
$file = $xyzFiles[0]
这是在PowerShell中“要走的路”?有更好的解决方案吗?
我会建议使用Get-ChildItem
的-include
参数。
Get-ChildItem $dir -include *.xyz
您可以使用Powershell中的管道功能来提高效率。例如Get-ChildItem "$dir" | Where-Object {$_.FullName -match ".xyz$"}
这将抓取扩展名为.xyz的文件。如果你有更多的文件,你可以进一步缩小范围。
我会用Get-ChildItem -Filter
和Select-Object -First
:
$filepath = Get-ChildItem -Path $dir -Filter *.xyz |Select -First 1
为什么这个答案比上面的'-include'解决方案有更多的upvotes? –
您也可以尝试Get-Item -LiteralPath (Resolve-Path "$dir\*.xyz")
在PowerShell中5版本,你也可以试试这个: Get-ChildItem $dir -Recurse -Include *.xyz
为什么呢? '-include'好得多 – 4c74356b41