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

时间:2015-01-23 09:56:11

标签: powershell

我需要帮助才能搜索lastrefresh.xml文件的目标文件夹,其上次修改日期早于180天。如果它发现此文件较旧,则应将此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
         } 

但是我怎么能有类似上面的内容,我只需要在所有目标文件夹子文件夹中检查LastRefresh.xml个文件修改日期,如果它与该XML文件的$lastwrite参数匹配则会移动包含该文件的整个文件夹以及该文件夹中找到该文件的所有其他文件。

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

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

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