首页 > 解决方案 > 在文件夹中查找最新文件

问题描述

我有以下代码:a

$Destination = "\\DC-Server1\Backups$\Folder1"

do{
    $Server = Test-Connection 'RegionalServer1' -Count 1 -Delay 30 -Quiet    
    if($Server)
    {
        Get-ChildItem E:\Backups | Where-Object { -not $_.PSIsContainer } | 
        Sort-Object -Property $_.CreationTime | Select-Object -First 1 | 
        Copy-Item -Destination $Destination -Force
    }

}until($Server)

此脚本每天运行,在另一个脚本在每天 06:00 创建副本后 15 分钟运行。文件格式为“data_$($CurrentDate).mdb”

我正在努力寻找今天创建的文件。

输出自Get-ChildItem E:\Backups

Mode                LastWriteTime         Length Name                     
----                -------------         ------ ----                     
-a----       2021/09/01  10:46 PM      982913024 data_02-09-2021 06-00.mdb
-a----       2021/09/02   8:19 AM      982913024 data_02-09-2021 18-00.mdb
-a----       2021/09/03   1:21 AM      982913024 data_03-09-2021 06-00.mdb
-a----       2021/08/27  10:06 AM      982913024 data_27-08-2021 10-33.mdb
-a----       2021/08/27  10:40 AM      982913024 data_27-08-2021 10-45.mdb
-a----       2021/08/27   5:10 PM      982913024 data_27-08-2021 18-00.mdb
-a----       2021/08/28   5:28 AM      982913024 data_28-08-2021 06-00.mdb
-a----       2021/08/28   5:28 AM      982913024 data_28-08-2021 18-00.mdb
-a----       2021/08/29   4:24 AM      982913024 data_29-08-2021 06-00.mdb
-a----       2021/08/29   3:55 PM      982913024 data_29-08-2021 18-00.mdb
-a----       2021/08/30  12:57 AM      982913024 data_30-08-2021 06-00.mdb
-a----       2021/08/30   4:28 PM      982913024 data_30-08-2021 18-00.mdb
-a----       2021/08/30   4:28 PM      982913024 data_31-08-2021 06-00.mdb

标签: powershell

解决方案


我认为您正在查看错误的属性..使用.LastWriteTime而不是.CreationTime

Get-ChildItem -Path 'E:\Backups' -File | 
    Sort-Object -Property $_.LastWriteTime -Descending | Select-Object -First 1 | 
    Copy-Item -Destination $Destination -Force
  • LastWriteTime是文件最后一次修改的时间,而
  • CreationTime为您提供文件首次创建的时间。当文件被复制或移动到另一个位置时,CreationTime 会被更改并采用制作副本的日期和时间。

Switch-File的作用与 相同Where-Object { -not $_.PSIsContainer },但要快得多。我相信这是在 PowerShell 3.0 版中引入的


推荐阅读