仅获取所有字母文件扩展名

时间:2016-12-02 05:45:53

标签: powershell powershell-v2.0 powershell-v3.0

我使用以下脚本查找给定路径中的所有文件扩展名:

Get-ChildItem -Path C:\myshellscript -recurse | 
    Select-Object FullName, Extension | 
    ConvertTo-HTML -head $a | 
    Out-File C:\Script\fileextension.htm

输出:

enter image description here

但我不想显示数值,只显示字母扩展名。所有数字文件扩展名都应为空白,不应显示扩展名,应避免使用数字扩展名

2 个答案:

答案 0 :(得分:3)

我添加了Where-Object cmdlet管道,该管道将删除包含整数的所有条目。不过,我认为.7zip之类的扩展程序有效,因此无法删除它们:

Get-ChildItem -Path C:\myshellscript -recurse | 
    Where-Object { $_.Extension -match '\D+' } |
    Select-Object FullName, Extension | 
    ConvertTo-HTML -head $a | 
    Out-File C:\Script\fileextension.htm

答案 1 :(得分:1)

如果你想隐藏扩展名数字

$res=0
gci "C:\myshellscript" -File -Recurse | 
    select FullName , @{N="Extension";E={if (-not [int]::TryParse($_.Extension.Replace(".", ""), [ref]$res) ) {$_.Extension} else {""}}} |
        ConvertTo-HTML -head $a | 
            Out-File C:\Script\fileextension.htm

如果您想要过滤器扩展数字

$res=0
gci "C:\myshellscript" -File -Recurse | where { -not [int]::TryParse($_.Extension.Replace(".", ""), [ref]$res)}
    select FullName , Extension |
        ConvertTo-HTML -head $a | 
            Out-File C:\Script\fileextension.htm