似乎Get-ChildItem
返回单个对象而不是一个对象的数组,如果它只找到一个项目。例如,这将返回5:
$files = Get-ChildItem -Filter "e*.txt"
$files.length
但是以下应该返回1但返回61321:
$files = Get-ChildItem -Filter "exact.txt"
$files.length
61321是文件exact.txt的大小(字节)。
我们如何始终检查是否找到了文件?
答案 0 :(得分:5)
这是一个"功能" Get-ChildItem
表示它不会返回带有一个项目的数组,而是返回单个对象。强制数组附加@
,如下所示:
$files = @(Get-ChildItem -Filter "e*.txt")
或者,如果你只是想检查一下是否有文件,你可以这样做:
$files = Get-ChildItem -Filter "exact.txt"
if (!$files) {"No Files"}