如何为文件夹中的文件设置1980.01.01-2022.08.05区间的随机创建日期?
为文件夹内文件设置指定范围内的随机日期时间
你可以通过以下修改后的PowerShell脚本实现需求,核心是为每个文件生成1980年1月1日至2022年8月5日之间的随机日期时间:
# 定义日期范围的起始和结束时间 $startDate = Get-Date "1980-01-01" $endDate = Get-Date "2022-08-05" # 获取当前目录下的所有文件(自动排除文件夹) $files = Get-ChildItem -Force -File foreach ($file in $files) { # 计算起始到结束日期的总秒数,作为随机数取值范围 $timeSpan = $endDate - $startDate $totalSeconds = $timeSpan.TotalSeconds # 生成随机秒数并转换成对应的日期时间 $randomSeconds = Get-Random -Minimum 0 -Maximum $totalSeconds $randomDateTime = $startDate.AddSeconds($randomSeconds) # 为文件设置随机的创建、修改和访问时间 $file.CreationTime = $randomDateTime $file.LastWriteTime = $randomDateTime $file.LastAccessTime = $randomDateTime }
关键说明:
- 用
Get-ChildItem -Force -File直接筛选文件,比原代码的Where-Object判断更简洁高效 - 通过计算日期区间的总秒数生成随机偏移量,确保生成的时间严格落在指定范围内
- 如果需要为文件的三个时间属性设置不同的随机值,可在循环内分别生成三次
$randomDateTime - 若要处理指定目录的文件,只需在
Get-ChildItem后添加-Path "你的文件夹路径"参数,例如:Get-ChildItem -Path "C:\TestFiles" -Force -File
内容的提问来源于stack exchange,提问作者Cindy
相关产品推荐
相关产品推荐

