PowerShell脚本开发求助:根据文件夹名称修改其创建日期
PowerShell脚本开发求助:根据文件夹名称修改其创建日期
嘿,这个需求我之前帮朋友处理过类似的,用PowerShell实现起来挺顺畅的,我给你整理了完整的解决方案,包括思路和可直接运行的脚本:
核心思路
- 定位到你要处理的根目录,筛选出名称符合
yyyy-MM-dd格式的文件夹 - 从文件夹名称里提取日期字符串,转换成PowerShell能识别的
DateTime对象 - 修改文件夹的创建时间属性(同时设置本地时间和UTC时间,避免时区偏差)
完整可运行脚本
# 替换成你实际要处理的根目录路径 $rootPath = "C:\Your\Target\Directory" # 定义日期格式,和你的文件夹名称格式完全匹配 $dateFormat = "yyyy-MM-dd" # 获取根目录下所有符合日期命名规则的文件夹 # 如果需要递归处理子目录里的文件夹,添加 -Recurse 参数即可 $targetFolders = Get-ChildItem -Path $rootPath -Directory | Where-Object { # 用正则表达式匹配严格的yyyy-MM-dd格式 $_.Name -match '^\d{4}-\d{2}-\d{2}$' } # 遍历每个目标文件夹进行处理 foreach ($folder in $targetFolders) { # 安全转换日期格式,避免系统区域设置影响 if ([DateTime]::TryParseExact($folder.Name, $dateFormat, $null, [System.Globalization.DateTimeStyles]::None, [ref]$folderDate)) { # 修改创建时间(本地时间 + UTC时间,确保时间一致性) $folder.CreationTime = $folderDate $folder.CreationTimeUtc = $folderDate.ToUniversalTime() Write-Host "✅ 成功修改文件夹 '$($folder.Name)' 的创建日期为: $folderDate" } else { Write-Warning "⚠️ 文件夹 '$($folder.Name)' 的名称不符合日期格式,已跳过处理" } }
额外说明
- 如果需要处理子目录中的文件夹,在
Get-ChildItem命令里添加-Recurse参数即可 - 运行脚本时如果遇到权限不足的报错,记得用管理员身份打开PowerShell
- 如果你还需要修改文件夹的最后修改时间/访问时间,可以参考修改
CreationTime的方式,修改LastWriteTime或LastAccessTime属性
备注:内容来源于stack exchange,提问作者QqL Peter
相关产品推荐
相关产品推荐

