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

如何用PowerShell批量修改多目录文件的创建时间等属性

解决SharePoint迁移时文件时间属性错误的批量处理脚本优化

针对你在SharePoint迁移中遇到的「The item created time or modified time is not supported」错误,以及原脚本只能单目录处理的问题,以下是两种优化后的PowerShell脚本方案,无需逐个切换目录即可批量处理多个文件夹:

方案1:通过命令行参数传入目标路径

可以直接在运行脚本时传入一个或多个文件夹路径,脚本会逐个处理:

param(
    [Parameter(Mandatory=$true)]
    [string[]]$TargetPaths
)

foreach ($path in $TargetPaths) {
    # 验证路径是否存在
    if (-not (Test-Path -Path $path)) {
        Write-Warning "路径 $path 不存在,跳过处理"
        continue
    }

    # 输出当前目录的文件时间属性(可选,用于验证)
    Write-Host "`n正在处理目录:$path"
    Get-ChildItem -Path $path -Force | Select-Object Mode, Name, CreationTime, LastAccessTime, LastWriteTime | Format-Table

    # 获取目录下所有非文件夹的文件
    $modifyfiles = Get-ChildItem -Path $path -Force | Where-Object {!$_.PSIsContainer}
    
    foreach ($object in $modifyfiles) {
        $object.CreationTime = "2023/01/03 12:00:00"
        $object.LastAccessTime = "2023/01/03 12:01:00"
        $object.LastWriteTime = "2023/01/03 12:02:00"
        Write-Host "已修改文件:$($object.FullName)"
    }
}

使用方式:
将脚本保存为ModifyFileTimes.ps1,然后在PowerShell中运行:

.\ModifyFileTimes.ps1 -TargetPaths "C:\Folder1", "D:\Shared\Folder2", "E:\Archive\Folder3"

方案2:预先定义目录列表

如果目标路径固定,可以直接在脚本中定义路径数组,运行脚本即可自动批量处理:

# 定义需要处理的文件夹路径数组
$targetDirectories = @(
    "C:\Folder1",
    "D:\Shared\Folder2",
    "E:\Archive\Folder3"
)

foreach ($path in $targetDirectories) {
    # 验证路径是否存在
    if (-not (Test-Path -Path $path)) {
        Write-Warning "路径 $path 不存在,跳过处理"
        continue
    }

    Write-Host "`n正在处理目录:$path"
    Get-ChildItem -Path $path -Force | Select-Object Mode, Name, CreationTime, LastAccessTime, LastWriteTime | Format-Table

    $modifyfiles = Get-ChildItem -Path $path -Force | Where-Object {!$_.PSIsContainer}
    
    foreach ($object in $modifyfiles) {
        $object.CreationTime = "2023/01/03 12:00:00"
        $object.LastAccessTime = "2023/01/03 12:01:00"
        $object.LastWriteTime = "2023/01/03 12:02:00"
        Write-Host "已修改文件:$($object.FullName)"
    }
}

关键优化点说明:

  • 移除了cd命令,通过Get-ChildItem的-Path参数直接指定目标目录,避免目录切换操作
  • 添加了路径存在性验证,防止因无效路径导致脚本报错
  • 增加了处理过程的提示信息,方便跟踪进度
  • 支持批量处理多个目录,无需重复修改脚本或手动切换目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:55:13