2013-04-03 74 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