Используйте BaseName
свойство вместо Name
:
Get-ChildItem -Path C:\Test\ | Select-Object -ExpandProperty BaseName | Out-File C:\test2\log.txt
Поскольку для командлета Get-ChildItem
нет встроенного свойства -BaseName
, вам нужно получить это свойство с помощью Select-Object
. Расширение свойства позволяет получить только значение выбранного свойства без заголовка.
Еще один способ получить значение BaseName
- использовать .BaseName
, например:
(Get-ChildItem -Path C:\Test\).BaseName | Out-File C:\test2\log.txt
Эта форма короче, но лично Я предпочитаю первую из-за читабельности и не нужно помнить об окружающих скобках ()
.
Лучшая практика
Если вы хотите проверить, каковы возможные свойства (и их значения) объекта, который у вас есть, вы также можете использовать Select-Object
для этого:
# Warning: HUGE OUTPUT POSSIBLE
Get-ChildItem -Path C:\test\| Select-Object *
# It's usually good to take only one object from the array
$obj = (Get-ChildItem -Path C:\test\)[0]
$obj | Select-Object *