2016-12-02 72 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 + $'' –

相關問題