通过powershell批量修改文件时间

返回
Author Avatar
钢翼
2024-10-18
编程
179

新建一个ps1后缀脚本,添加代码如下

# *******************************
# 以下三个参数请自行设置
# 开始时间
$minDate = '2022-04-01' 
# 结束时间
$maxDate = '2023-08-31'
# 文档目录
$path = 'G:\abc'
# *******************************




# 根据开始时间和结束时间随机生成一个日期 
function Get-RandomDate {
    param(
        [datetime]$MinDate,
        [datetime]$MaxDate
    )
    
    $rand = New-Object System.Random
    
    # 计算时间间隔的总天数
    $dateSpan = New-TimeSpan -Start $MinDate -End $MaxDate
    $randomDays = $rand.Next($dateSpan.Days)
    
    # 返回一个随机日期
    $randomDate = $MinDate.AddDays($randomDays)
    return $randomDate
    
}
# 根据日期随机生成一个时间
function Get-RandomTime {
    param(        
        [datetime]$date
    )
    return ($date.ToString("MM/dd/yyyy") + ' '+(Get-Random -Minimum 8 -Maximum 24).ToString("D2")+':'+(Get-Random -Maximum 60).ToString("D2")+':'+(Get-Random -Maximum 60).ToString("D2"))
}
 
# 遍历文件夹下所有文件
Get-ChildItem  $path -Recurse | ForEach-Object -Process{
  if($_ -is [System.IO.FileInfo])
  {
    $createDate = Get-RandomDate -MinDate $minDate -MaxDate $maxDate
    Write-Host($_.name); 
    # 修改创建时间
    $_.CreationTime =  Get-RandomTime -date $createDate
    $modifyDate = Get-RandomDate -MinDate $createDate -MaxDate $maxDate
    # 修改最后修改时间
    $_.LastWriteTime =  Get-RandomTime -date $modifyDate
  }
}