我有一個指向目錄的字符串變量。在這個目錄中是一個擴展名爲.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