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

如何在PowerShell中为文件夹及子文件夹内所有文件追加创建日期

解决PowerShell批量复制并给所有层级文件追加创建时间的方案

原有脚本仅处理了根目录下的一级文件/文件夹,子文件夹内的文件没有被单独遍历更名,因此不会追加创建时间。

修正后的完整脚本如下:

$path = "C:\test1"
$destination = "C:\test2"

# 遍历源路径下所有层级的文件,包含子文件夹内的文件
Get-ChildItem -Path $path -File -Recurse | ForEach-Object {
    # 计算文件在源目录下的相对路径,用来在目标目录保留原目录结构
    $relativePath = $_.FullName.Substring($path.Length).TrimStart('\','/')
    # 生成带创建时间前缀的新文件名
    $newFileName = $_.CreationTime.ToString("yyyy-MM-dd") + $_.BaseName + $_.Extension
    # 拼接目标路径:目标根目录 + 原相对父路径 + 新文件名
    $targetDir = Join-Path -Path $destination -ChildPath (Split-Path -Path $relativePath -Parent)
    $targetFullPath = Join-Path -Path $targetDir -ChildPath $newFileName
    
    # 自动创建目标路径下不存在的文件夹
    if (-not (Test-Path -Path $targetDir)) {
        New-Item -ItemType Directory -Path $targetDir | Out-Null
    }
    
    # 复制文件到目标路径
    Copy-Item -Path $_.FullName -Destination $targetFullPath
}

核心改动说明:

  • 给Get-ChildItem增加了-File参数,只遍历文件对象,避免处理文件夹本身;增加-Recurse参数,遍历所有子文件夹内的文件
  • 新增了相对路径计算逻辑,保留原有的文件夹层级结构,不会把所有文件都堆在目标根目录下
  • 新增了目标文件夹自动创建逻辑,避免子文件夹不存在时复制报错
  • 对每一个单独的文件生成带创建时间的新名称,确保所有层级的文件都能正常追加创建日期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:27:03