


I’m using the () to capture the YYYYMMDDHHMM string and then the `$1 substitutes that string back into the new filename. The downside is you could have duplicate files on the rename if more than one file was created in the same minute but that was not our issue.) (This was a requirement of the a customer. Here I’m changing a date like this: YYYYMMDDHHMMSS_xxxx to YYYYMMDDHHMM. The -replace is the keyword that tells us that we are doing a RegEx replace. If you know what you are doing you can pipe without the Foreach, but I like to break it down, so I can add the debug Write-Host statements and run a simulation run (by commenting out the actual Rename-Item statement) before the final rename.Ĥ. Then “ForEach” matching file, do what is in the curly brackets of the Foreach-Object loop. Get-ChildItem returns all files in the current directory with the mask *.xmlģ. The CD shouldn’t be needed, but if you are running Powershell in a different directory in ISE, it can be helpful.Ģ. Rename-Item -Path $_.FullName -NewName $NewNameġ. Get-ChildItem -Filter *.xml | Foreach-Object.xml", "XYZ_`$1.xml" Sometimes you need to quickly do a mass rename of a large number of files in a directory.
