You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell按创建日期(非修改日期)复制两目录间24小时内的JPG/JPEG文件?

基于文件创建日期复制的PowerShell解决方案

没问题,这个需求用PowerShell实现起来很直接,我给你整理了具体的命令和细节说明,确保你能精准完成操作:

核心思路

要实现按创建日期而非修改日期筛选文件,关键是利用PowerShell中文件对象的CreationTime(本地时间)或CreationTimeUtc(UTC时间)属性,结合时间范围过滤后执行复制。

具体命令示例

假设你的源目录是C:\MyPhotos\Source,目标目录是C:\MyPhotos\Backup,以下是完整的实现命令:

# 计算24小时前的时间节点(本地时间)
$24HoursAgo = (Get-Date).AddHours(-24)

# 筛选并复制过去24小时内创建的JPG/JPEG文件
Get-ChildItem -Path "C:\MyPhotos\Source" -Include "*.jpg", "*.jpeg" -File -Recurse |
    Where-Object { $_.CreationTime -ge $24HoursAgo } |
    Copy-Item -Destination "C:\MyPhotos\Backup" -Force

命令细节解释

  • $24HoursAgo:用Get-Date获取当前时间,再减去24小时,得到筛选的时间阈值。
  • Get-ChildItem:
    • -Path:指定源目录路径;
    • -Include:同时匹配.jpg和.jpeg两种扩展名;
    • -File:只筛选文件(排除子目录);
    • -Recurse:递归遍历源目录下的所有子文件夹(如果不需要递归,直接去掉这个参数即可)。
  • Where-Object { $_.CreationTime -ge $24HoursAgo }:只保留创建时间晚于24小时前的文件,这里用-ge(大于等于)确保刚好24小时前创建的文件也会被选中。
  • Copy-Item:
    • -Destination:指定目标目录;
    • -Force:如果目标目录已有同名文件,会直接覆盖(如果不想覆盖,去掉这个参数即可)。

时区注意事项

如果你的系统或文件服务器使用UTC时间,建议改用CreationTimeUtc属性,避免时区偏差:

$24HoursAgoUtc = (Get-Date).ToUniversalTime().AddHours(-24)

Get-ChildItem -Path "C:\MyPhotos\Source" -Include "*.jpg", "*.jpeg" -File -Recurse |
    Where-Object { $_.CreationTimeUtc -ge $24HoursAgoUtc } |
    Copy-Item -Destination "C:\MyPhotos\Backup" -Force

测试建议

在正式执行复制前,你可以先去掉Copy-Item部分,用Select-Object查看筛选出的文件列表,确认是否符合预期:

Get-ChildItem -Path "C:\MyPhotos\Source" -Include "*.jpg", "*.jpeg" -File -Recurse |
    Where-Object { $_.CreationTime -ge $24HoursAgo } |
    Select-Object FullName, CreationTime

内容的提问来源于stack exchange,提问作者mohamedali.lotfy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:25:27