2016-12-02 67 views
1

我使用下面的脚本来找到一个给定的路径中的所有文件的扩展名:仅获得所有字母的文件扩展名

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

输出:

enter image description here

但我不希望显示数字值,但仅显示字母表扩展名。所有的数字文件的扩展名应该是空白,应显示没有扩展名的,数字的扩展,应避免

回答

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 
+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 
+0

但如果我不需要7个zip扩展名,我应该在脚本中更改什么内容,对此也可以说谢谢 –

+0

任何想法如果没有数字扩展名,我都会建议,我非常需要它。 –

+1

只是将匹配改为:'-match'^ \ D + $'' –

相关问题