搜索文件,当在特定文件夹中找到时,将该文件夹移动到另一个位置

search for file, when found in particular folder, move that folder to another location

我需要帮助才能在目标文件夹中搜索上次修改日期超过 180 天的 lastrefresh.xml 文件。如果发现此文件较旧,则应将此 XML 文件所在的整个文件夹移动到另一个目标路径的存档路径。

$targetfolder = "\something\*\*\*\*\*\files\files\
$archivefolder = "\something\*\*\archive\

我正在使用下面的脚本来使它适用于文件夹,它在其中检查文件夹的修改日期并且这有效。

$targetfolder = "\something\*\*\*\*\*\files\files\
$archivefolder = "\something\*\*\archive\

$LastWrite = (Get-Date).AddDays(-1)

$Files = Get-ChildItem $TargetFolder |
         Where-Object {$_.LastWriteTime -le $LastWrite} |
         Select-Object -ExpandProperty FullName |
         ForEach-Object {
           write-host "Archiving following folder" $_ $ArchiveFolder1
           Move-Item $_ $ArchiveFolder
         } 

但是我怎么能像上面那样,我只需要检查所有 targetfolder 子文件夹中的 LastRefresh.xml 文件修改日期,如果它与我的 $lastwrite 参数匹配 XML 文件,它将移动整个文件夹以及该文件所在的文件夹中的所有其他文件。

我只需要能够检查lastrefresh.xml个文件数据修改。如果超过 180 天,将整个文件夹移动到此 XML 文件所在的位置。此文件存在于许多文件夹中。

尝试这样的事情:

Get-ChildItem $TargetFolder -File | ? {
  $_.Name -eq 'lastrefresh.xml' -and $_.LastWriteTime -le $LastWrite
} | % {
  Move-Item $_.Directory "$ArchiveFolder\"
}