Исключить расширение из выходного файла в PS? - PullRequest
0 голосов
/ 18 октября 2019

Моя цель - отобразить элементы в каталоге C:\test в файле журнала с именем log.txt без отображения расширений файлов найденных файлов, например, .zip, .pdf и т. Д.

Мой сценарий на данный момент:

Get-ChildItem -Path C:\Test\ -name |Out-File C:\test2\log.txt

Как мне получить файл .log, чтобы НЕ отображать расширения файлов, найденных в папке C:\test?

1 Ответ

4 голосов
/ 18 октября 2019

Используйте 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 *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...