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

使用PowerShell批量修改文件创建时间为修改时间的语法验证

问题解答

语法正确性

你最终的PowerShell命令语法是完全正确的:

Get-ChildItem "[**redacted**]Phone\Pictures\" -File -Recurse | ForEach-Object { $_.CreationTime = $_.LastWriteTime }
  • -File 参数确保仅处理文件,不会修改文件夹的创建时间;
  • -Recurse 实现递归遍历所有子目录;
  • 管道后的逻辑和你测试过的单文件夹命令一致,能准确将每个文件的创建时间同步为修改时间。

是否会造成严重破坏

只要你指定的路径准确(仅指向目标图片目录),不会对系统造成严重破坏:

  • 该命令仅修改文件的元数据(创建时间属性),不会篡改文件内容;
  • 操作范围被限制在你指定的图片目录内,不会影响系统文件或其他无关数据。

注意事项:

  • 务必确认路径无误,避免误写为系统目录(如C:\Windows);
  • 操作前建议备份少量文件的属性(或直接备份文件),因为修改后的创建时间无法直接恢复,除非有原始备份。

更优实现方式

针对你的场景,有几个优化方向:

1. 添加操作日志

输出处理的文件名,方便验证操作范围和排查问题:

Get-ChildItem "[**redacted**]Phone\Pictures\" -File -Recurse | ForEach-Object { 
    $_.CreationTime = $_.LastWriteTime
    Write-Host "已同步创建时间:$($_.FullName)"
}

2. 仅处理图片文件

如果目录中存在非图片文件,通过-Include过滤常见图片格式,避免误处理:

Get-ChildItem "[**redacted**]Phone\Pictures\" -File -Recurse -Include *.jpg,*.jpeg,*.png,*.gif,*.heic | ForEach-Object {
    $_.CreationTime = $_.LastWriteTime
}

3. 并行加速(PowerShell 7+支持)

如果图片数量过万,用-Parallel参数并行处理,提升效率:

Get-ChildItem "[**redacted**]Phone\Pictures\" -File -Recurse | ForEach-Object -Parallel {
    $_.CreationTime = $_.LastWriteTime
    Write-Host "已处理:$($_.FullName)"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:06:03