从 PS 中的输出文件中排除扩展名?

Met*_*eta 0 powershell

C:\test我的目标是在名为 的日志文件中显示目录中的项目log.txt,而不显示找到的文件的文件扩展名,例如.zip.pdf等。

到目前为止我的脚本:

Get-ChildItem -Path C:\Test\ -name |Out-File C:\test2\log.txt
Run Code Online (Sandbox Code Playgroud)

如何使.log文件不显示文件夹中找到的文件的扩展名C:\test

rob*_*bdy 5

使用BaseName属性而不是Name

Get-ChildItem -Path C:\Test\ | Select-Object -ExpandProperty BaseName | Out-File C:\test2\log.txt
Run Code Online (Sandbox Code Playgroud)

由于 cmdlet 没有内置-BaseName属性Get-ChildItem,因此您需要使用Select-Object. 展开属性允许您仅获取所选属性的值,而不获取标头。

另一种获取价值的方法是这样BaseName使用:.BaseName

(Get-ChildItem -Path C:\Test\).BaseName | Out-File C:\test2\log.txt
Run Code Online (Sandbox Code Playgroud)

该形式较短,但我个人更喜欢第一个形式,因为它具有可读性,并且无需记住周围的大括号()


最佳实践

如果您想检查您拥有的对象的可能属性(及其值),您也可以使用Select-Object

Get-ChildItem -Path C:\Test\ | Select-Object -ExpandProperty BaseName | Out-File C:\test2\log.txt
Run Code Online (Sandbox Code Playgroud)