2013-04-03 78 views
0

我有這個真棒PowerShell腳本會從文件名中刪除特殊字符:如何轉換功能工作遞歸

Function Rename-Files($path) 
{ 
Get-ChildItem -path $path | 
Foreach-Object { 
     $newName = $_.name -replace '[^A-Za-z0-9-_ ]', '' 
     if (-not ($_.name -eq $newname)){ 
     Rename-Item -Path $_.fullname -newname ($newName) 
     } 
} 
} #end function 

Rename-Files -path "C:\somepath" 

我想知道是否有可能得到這個工作不只是在頂級目錄但遞歸地通過整個目錄結構

回答

2

只需添加-RecurseGet-ChildItem參數。例如

Get-ChildItem -Recurse -path $path 
+0

謝謝!這工作。但我怎麼能得到它也不觸摸時期,有效期! – 2013-04-03 21:40:14

+0

這是你從[你問的其他問題]得到的正則表達式字符類的問題(http://stackoverflow.com/questions/15798031/how-to-convert-filenames-with-special-characters-to-valid-文件名)。你沒有列出作爲要求順便說一句。 – 2013-04-03 21:56:14