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

PowerShell使用Where-Object筛选指定时间范围且含'MS'的文件

PowerShell 筛选文件无返回结果排查方案
  • 验证基准时间变量有效性
    首先执行$MSdat_file | Select-Object FullName, CreationTime,确认源文件对象$MSdat_file是否正常获取,$MSdat_time是否为有效时间值。排除源文件路径变更、读取权限失效导致的变量为空,后续时间逻辑直接失效的问题。
  • 验证时间筛选逻辑正确性
    当前代码使用LastWriteTime(文件最后修改时间)作为筛选条件,若你的需求是匹配文件创建时间,需要替换为CreationTime属性。
    先执行下方代码输出目标文件夹所有文件的时间字段,确认符合条件的文件时间是否落在你设定的±5分钟范围内:
    Get-ChildItem "\\IP.Address\Test Data\Auto Saves" | Select-Object FullName, CreationTime, LastWriteTime
    
    同时检查本地执行机器和文件存储服务器的时区是否一致,避免时区差导致时间范围偏移,命中不到符合条件的文件。
  • 验证MS匹配规则是否符合预期
    代码中Select-String -Pattern 'MS'的作用是搜索文件内容中包含MS字符串的文件,如果你实际需要筛选的是文件名包含MS的文件,应该将匹配逻辑迁移到Where-Object中,参考修改逻辑:
    # 筛选文件名含MS的场景
    $autsav_file = Get-ChildItem "\\IP.Address\Test Data\Auto Saves" | `
      Where-Object {($_.LastWriteTime -ge $auto_mintime) -and ($_.LastWriteTime -le $auto_maxtime) -and $_.Name -like '*MS*'} | `
      Select-Object -Unique Path
    
    若确实需要匹配文件内容,可单独执行Get-ChildItem "\\IP.Address\Test Data\Auto Saves" | Select-String -Pattern 'MS' -Encoding UTF8测试,排除文件编码不兼容导致Select-String识别不到内容中MS的问题。
  • 验证共享路径访问权限
    执行Test-Path "\\IP.Address\Test Data\Auto Saves"确认共享路径可正常访问,若返回False,说明当前账号的共享文件夹访问权限被撤销,或是IP地址、共享文件夹名称发生了变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:36:03