Powershell中的文件输出没有扩展名

时间:2012-11-13 22:33:35

标签: powershell powershell-v2.0

这是我到目前为止所做的:

Get-ChildItem "C:\Folder" | Foreach-Object {$_.Name} > C:\Folder\File.txt

当您打开上面的输出File.txt时,您会看到:

file1.txt
file2.mpg
file3.avi
file4.txt

如何获取输出以删除扩展名并仅显示:

file1
file2
file3
file4

提前致谢!

修改

在我下面的伙伴的帮助下想出来。我最终使用了:

Get-ChildItem "C:\Folder" | Foreach-Object {$_.BaseName} > C:\Folder\File.txt

4 个答案:

答案 0 :(得分:19)

Get-ChildItem "C:\Folder" | Select BaseName > C:\Folder\File.txt

答案 1 :(得分:2)

将文件名传递给GetFileNameWithoutExtension method以删除扩展程序:

Get-ChildItem "C:\Folder" | `
    ForEach-Object { [System.IO.Path]::GetFileNameWithoutExtension($_.Name) } `
    > C:\Folder\File.txt

答案 2 :(得分:2)

现在对于FileInfo版本,因为其他人都把我打到了Path.GetFileNameWithoutExtension解决方案。

Get-ChildItem "C:\" | `
where { ! $_.PSIsContainer } | `
Foreach-Object {([System.IO.FileInfo]($_.Name)).Name.Split('.')[0]}

答案 3 :(得分:0)

使用BaseName属性而不是Name属性:

Get-ChildItem "C:\Folder" | Select-Object BaseName > C:\Folder\File.txt