Get-ChildItem .\dir
дает вам все файлы, содержащиеся в каталоге .\dir
, а не сам каталог.
Именно поэтому следующая строка в вашем скрипте создает массив LastWriteTimes для всех файлов, которые содержатся в каталог, который $forDir/$Dir
разрешает в вашем foreach l oop:
$dirDate = @(Get-ChildItem $forDir/$Dir | % {$_.LastWriteTime})
Массив в $dirDate
вернет System.Object[]
при вызове его метода toString()
. Это причина, почему вы видите эту строку в вашем Excel, где вы ожидаете метку времени папки.
Могу поспорить, что те папки, которые, кажется, работают, имеют ровно один дочерний элемент ...
Чтобы получить LastWriteTime самого каталога, используйте Get-Item
вместо Get-ChildItem
.
$dirDate = Get-Item $forDir/$Dir | Select-Object -Expand LastWriteTime