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

PowerShell脚本故障:昨日文件无法复制至指定文件夹求助

PowerShell脚本修复:复制昨日修改的锁屏壁纸文件

原脚本的核心问题

  • 采用字符串格式比较日期,依赖系统区域设置的日期格式,一旦格式变更就会失效,导致无法匹配到目标文件
  • 直接复制无扩展名的文件,无法正常识别,且未处理复制过程中的异常情况

修复后的完整脚本

$DestinationFolder = "D:\Dropbox\Public\Download\New folder"
# 确保目标文件夹存在,不存在则创建
if (!(Test-Path $DestinationFolder)) {
    New-Item -ItemType Directory -Force -Path $DestinationFolder | Out-Null
}

# 用时间范围直接判断,避开字符串格式的坑
$yesterdayStart = (Get-Date).Date.AddDays(-1)
$todayStart = (Get-Date).Date

# 筛选出昨日0点到今日0点之间修改的文件
$Files = Get-ChildItem "C:\Users\Harel Gordon\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets" -File | 
    Where-Object { $_.LastWriteTime -ge $yesterdayStart -and $_.LastWriteTime -lt $todayStart }

foreach ($File in $Files) {
    # 给壁纸文件加上.jpg扩展名,方便直接查看
    $destFilePath = Join-Path -Path $DestinationFolder -ChildPath "$($File.Name).jpg"
    try {
        Copy-Item -Path $File.FullName -Destination $destFilePath -Force
        Write-Host "已复制: $($File.Name)"
    }
    catch {
        Write-Host "复制失败: $($File.Name),错误原因: $($_.Exception.Message)"
    }
}

Read-Host -Prompt "按回车键退出"

关键修复点说明

  1. 日期判断逻辑优化:直接用DateTime对象比较时间范围,不管系统区域格式怎么变更,都能准确匹配昨日修改的文件
  2. 添加文件扩展名:锁屏壁纸文件夹里的文件没有后缀,加上.jpg后复制过去就能直接打开查看
  3. 异常捕获处理:复制出错时会显示具体错误信息,比如文件被占用、权限不足等,方便排查问题
  4. 规范路径拼接:用Join-Path生成目标路径,避免手动拼接字符串出现的格式错误

内容的提问来源于stack exchange,提问作者Harel Gordon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:22:50