2017-07-17 50 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

相關問題