如何将最旧的文件复制到新的directoy?

时间:2017-01-29 14:30:59

标签: powershell

我需要一个脚本将1个旧文件移动到另一个目录 我有一个脚本,但对我不好:

$path = "C:*.*" 
$Destination = "C:*.*" 
Foreach($file in (Get-ChildItem $path)) { 
  If($file.LastWriteTime -gt (Get-Date).adddays(-1).date) { 
    Move-Item -Path $file.fullname -Destination $Destination 
  } 
}

我只需要1个文件,而且每天最旧。

请帮忙,谢谢

2 个答案:

答案 0 :(得分:0)

如果您只想要一个文件,那么您不需要 foreach 循环。您可以使用 排序对象 选择对象 一起尝试这样的事情 - 降序参数。

目前我已经使用 CreationTime 对其进行了排序,您始终可以使用 -First 选择结果的第一个元素。

$path = "C:*.*"  ;
$Destination = "C:*.*" ;
$file= Get-ChildItem $path | select name,lastwritetime,CreationTime | sort-object -property CreationTime -Descending | Select-Object -First 1 ; 
  If($file.LastWriteTime -gt (Get-Date).adddays(-1).date) { 
    Move-Item -Path $file.fullname -Destination $Destination 
  }

希望它有所帮助。

答案 1 :(得分:0)

尝试类似这样的事情

$path = "C:\temp"  ;
$Destination = "C:\temp\olddir\" ;
Get-ChildItem $path -file -rec | 
    where {$_.LastWriteTime -le (Get-Date).adddays(-10).date} | 
        Select-Object -First 1 |
             Move-Item -Destination "$Destination"