我的目标是在名为C:\test
的日志文件中显示目录log.txt
中的项目,而不显示找到的文件的文件扩展名,例如.zip
,.pdf
等
到目前为止,我的脚本是
Get-ChildItem -Path C:\Test\ -name |Out-File C:\test2\log.txt
如何获取.log
文件以不显示在C:\test
文件夹中找到的文件的扩展名?
答案 0 :(得分:4)
使用BaseName
属性代替Name
:
Get-ChildItem -Path C:\Test\ | Select-Object -ExpandProperty BaseName | Out-File C:\test2\log.txt
由于-BaseName
cmdlet没有内置的Get-ChildItem
属性,因此您需要使用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 *