我需要一个脚本将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个文件,而且每天最旧。
请帮忙,谢谢
答案 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"