2016-09-26 50 views
1

看起來Get-ChildItem返回一個對象而不是一個對象的數組,如果它只找到一個項目。例如,這將返回5:Powershell Get-ChildItem返回的對象不是數組

$files = Get-ChildItem -Filter "e*.txt" 
$files.length 

但下面應該返回1,但返回61321:

$files = Get-ChildItem -Filter "exact.txt" 
$files.length 

的61321是在文件exact.txt的字節大小。

我們該如何持續檢查是否有文件被找到?

回答

2

這是一個Get-ChildItem的「特徵」,它不會返回一個數組的一個數組,而是單個對象。要強制數組追加@爲:

$files = @(Get-ChildItem -Filter "e*.txt") 

或者,如果你只是想檢查,如果沒有文件,你可以這樣做:

$files = Get-ChildItem -Filter "exact.txt" 
if (!$files) {"No Files"}