2014-12-03 71 views
1

在目錄中我做Powershell的獲取,項目對象或數組

Get-Item *.txt 

當有它返回一個System.IO.FileSystemInfo

目錄內的一個.txt文件,當有更多的.TXT它返回的文件 System.Array

處理這種不一致的最佳方法是什麼?即我如何找出函數是否返回了一個對象或數組。或者更好的是,Get-Item總是返回一個數組嗎?

我想將結果傳遞給其他函數。該函數需要一個System.IO.FileSystemInfo對象的數組。

回答

1

可以強制數組總是返回:

@(Get-Item *.txt) 
+0

這正是我所期待的。 – Delis 2014-12-03 17:13:29

0

使用ForEach-Object

Get-Item *.txt | ForEach-Object { 
    # Do stuff 
    $_ # this represents the "current" object 
} 
+0

謝謝!這個解決方案也很棒。 – Delis 2014-12-03 17:10:11

0

的一種方式,以確保結果將始終是一個數組被包裹在@()的表達式:

@(Get-Item *.txt)