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

Get only all alphabet file extensions

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

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

输出:

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

我添加了一个 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

如果你想隐藏分机号码

$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