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

Powershell移动31天以上文件遇重名自动重命名功能实现求助

PowerShell 旧文件移动脚本解决方案

完整可运行代码

Start-Transcript -Path "D:\LOG\LOG_OLDFILES.txt" -Append
# 预创建目标目录避免不存在报错
$targetDir = "D:\temp\temp_backup"
if (-not (Test-Path $targetDir)) {
    New-Item -ItemType Directory -Path $targetDir -Force | Out-Null
}

Get-ChildItem -Verbose -Path "D:\DATASOURCE" -File -Recurse |
Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-31)} |
ForEach-Object {
    $targetFilePath = Join-Path $targetDir $_.Name
    # 检测目标路径是否存在同名文件
    if (Test-Path $targetFilePath) {
        # 生成精确到秒的时间戳,避免重名冲突,可按需增加毫秒位调整精度
        $timeStamp = Get-Date -Format "yyyyMMddHHmmss"
        $newFileName = "{0}_{1}{2}" -f $_.BaseName, $timeStamp, $_.Extension
        $targetFilePath = Join-Path $targetDir $newFileName
    }
    Move-Item -Path $_.FullName -Destination $targetFilePath -Verbose
}
Stop-Transcript

逻辑说明

  • 新增目标目录存在性校验,避免目标目录未提前创建导致的移动失败
  • 将原直接管道传递给Move-Item的逻辑改为逐文件遍历处理,单独实现重命名规则:
    • 先拼接默认目标路径,判断是否存在同名文件
    • 存在同名文件时,自动按要求将待移动文件重命名为原文件名_时间戳格式,保留原始扩展名
    • 时间戳格式可根据实际需求调整,如需更高防冲突精度可将格式改为yyyyMMddHHmmssfff增加毫秒位
  • 所有操作日志会完整保留在指定的转录日志文件中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:36:03