将31天之前的文件移动到另一个驱动器

Mau*_*idt 12 powershell time get file move

Function Move {
  #Moves all files older than 31 days old from the Source folder to the Target 
  Get-Childitem -Path "E:\source" | Where-Object { $_.LastWriteTime -lt (get-date).AddDays(-31)} |
  ForEach {
    Move-Item $_.FullName -destination "F:\target" -force -ErrorAction:SilentlyContinue
  }
}
Run Code Online (Sandbox Code Playgroud)

在源目录中是超过2 - 3年的文件,但是当我运行脚本时没有任何东西移动到目标目录?怎么了 ?

Mat*_*les 23

我不知道这是否有很大的不同,而不是$.它需要是$ _.

我试过这个脚本,它对我来说很好用:

get-childitem -Path "E:\source" |
    where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} | 
    move-item -destination "F:\target"
Run Code Online (Sandbox Code Playgroud)

请注意,您不需要foreach循环,因为对象将被"管道"到move-item命令中