这是我到目前为止所做的:
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
答案 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