Как циклично выполниться через файлы (полный путь) в PowerShell

Как я делаю эквивалент в PowerShell? Обратите внимание, что я требую полного пути в каждый файл.

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

Я играл вокруг с, Добираются-ChildItem некоторое время, и я уверен, что ответ там где-нибудь.

5
задан Ethan Post 24 February 2010 в 16:24
поделиться

2 ответа

Я не уверен, что mtime делает вот код для всего остального

gci -re -in *.txt "some\path\to\search" | 
  ?{ -not $_.PSIsContainer } |
  %{ mv $_.FullName "$($_.FullName).old" }
6
ответ дан 14 December 2019 в 04:36
поделиться

Похоже, это приближает меня к тому, что мне нужно. Мне удалось объединить часть информации из ответа Джареда с этим вопросом , чтобы понять это.

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

В интересах обмена богатством здесь моя функция - имитировать * nix find.

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
ответ дан 14 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: