如何将函数转换为递归工作

时间:2013-04-03 21:32:20

标签: powershell

我有这个非常棒的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"

我想知道是否有可能让这个工作不仅在顶层目录上,而且通过整个目录结构递归

1 个答案:

答案 0 :(得分:2)

只需添加-Recurse Get-ChildItem参数即可。 e.g。

Get-ChildItem -Recurse -path $path