How to merge files (full path) in PowerShell

How to make an equivalent in PowerShell? Please note that I need the full path to each file.

# ksh
for f in $(find /app/foo -type f -name "*.txt" -mtime +7); do
   mv ${f} ${f}.old
done

I played around with Get-ChildItem a bit and I'm sure the answer is somewhere.

+5
source share
2 answers

I'm not sure mtime is the code here to do the rest

gci -re -in *.txt "some\path\to\search" | 
  ?{ -not $_.PSIsContainer } |
  %{ mv $_.FullName "$($_.FullName).old" }
+6
source

This is similar to what I need. I was able to combine some of the information from Jared's answer with this question to figure it out.

foreach($f in $(gci -re -in hoot.txt "C:\temp")) {
   mv $f.FullName "$($f.FullName).old"
}

In the interest of wealth sharing, here is my * nix find imitation function.

function unix-find (
   $path,
   $name="*.*",
   $mtime=0) 
   {
   gci -recurse -include "$name" "$path" | 
      where-object { -not $_.PSIsContainer -and ($_.LastWriteTime -le (Get-Date).AddDays(-$mtime)) } |
      foreach { $_.FullName }
   }
+2
source

All Articles