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

PowerShell:如何让Get-ChildItem同时按文件类型和近7天创建日期筛选

实现Get-ChildItem同时按文件类型和创建日期筛选

完全可以同时按文件类型(.dat)和近7天创建日期筛选,直接在现有脚本里加入日期过滤逻辑就行,给你两种实用的修改方式:

方式一:用Where-Object管道筛选(兼容所有PowerShell版本)

直接在Get-ChildItem之后、Select之前添加日期过滤,利用你已经定义好的$time变量:

$searchDir = "z:\G29"
$searchFile = "*.dat"
$outputDir = "d:\AuditLog\AuditLog_$(get-date -f yyyy-MM-dd).txt"
$time=(Get-Date).AddDays(-7)

$files = Get-ChildItem -Path $searchDir -Recurse -Filter $searchFile -EA SilentlyContinue | 
         Where-Object { $_.CreationTime -ge $time } |  # 新增:筛选近7天创建的文件
         Select CreationTime, Fullname |
         Format-Table -Wrap -AutoSize |
         Out-File $outputDir -Append

改动说明:

  • 新增的Where-Object { $_.CreationTime -ge $time }会只保留创建时间晚于等于7天前的文件
  • 如果你要严格筛选“7天内(不含7天前当天)”的文件,把-ge改成-gt即可

方式二:结合-File参数优化(PowerShell 5.1及以上版本适用)

如果你的PowerShell版本是5.1或更高,可以加上-File参数只返回文件(排除文件夹),让筛选更精准:

$searchDir = "z:\G29"
$searchFile = "*.dat"
$outputDir = "d:\AuditLog\AuditLog_$(get-date -f yyyy-MM-dd).txt"
$time=(Get-Date).AddDays(-7)

$files = Get-ChildItem -Path $searchDir -Recurse -Filter $searchFile -File -EA SilentlyContinue | 
         Where-Object { $_.CreationTime -ge $time } |
         Select CreationTime, Fullname |
         Format-Table -Wrap -AutoSize |
         Out-File $outputDir -Append

额外提示:

  • 如果不需要递归遍历子文件夹,去掉-Recurse参数即可
  • -EA SilentlyContinue会忽略找不到路径之类的错误,保留这个参数可以避免脚本意外中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:50:26