title: Cycle through sub-folders to rename files in Powershell
body: <p>I have a file directory that contains many folders within it. Inside each of these sub-folders, I have a variety of files. I would like to go through each file, rename some of the items, and add extensions to some of them. I am using Powershell to do this.</p>
  
  <p>I have file names with "." that all need to be replaced with "_" for example, "wrfprs_d02.03" should be "wrfprs_d02_03". I was able to successfully do that in one folder with the following code:</p>
  
  <pre><code>dir | rename-item -NewName {$_.name -replace "wrfprs_d02.","wrfprs_d02_"}
  </code></pre>
  
  <p>After, I make those replacements, I want to add .grb extensions on to some of the files, which all happen to start with "w", and I was able to do that within one folder with:</p>
  
  <pre><code>Get-ChildItem | Where-Object {$_.Name -match "^[w]"} | ren -new {$_.name + ".grb"}
  </code></pre>
  
  <p>When I step back from one folder and try to do it iteratively within many folders, my code doesn't work. I am in a directory called "Z:\Windows.Documents\My Documents\Test_data\extracted" which contains all my sub-folders that I want to iterate over. I am using the following code:</p>
  
  <pre><code>$fileDirectory = "Z:\Windows.Documents\My Documents\Test_data\extracted"
  foreach($file in Get-ChildItem $fileDirectory)
  {
  dir | rename-item -NewName {$_.name -replace "wrfprs_d02.","wrfprs_d02_"}
  Get-ChildItem | Where-Object {$_.Name -match "^[w]"} | ren -new {$_.name + ".grb"}
  }
  </code></pre>
  
  <p>Any ideas on what my problem is?</p>