Проблема в том, что Get-Childitem
вернет два типа объектов.Если есть только один файл, $files = Get-ChildItem "C:\Reports\APERAK"
будет содержать FileInfo
.Если есть больше, он будет содержать массив объектов FileInfo.Давайте рассмотрим пример:
md foo
cd foo
set-content -Path "foo.txt" -Value ""
$files = gci
$files.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True FileInfo System.IO.FileSystemInfo
set-content -Path "foo2.txt" -Value ""
$files2 = gci
$files2.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Что касается решения, оберните gci
в массив.Вот так
$files = @(Get-ChildItem "C:\Reports\APERAK")