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

如何以表格格式展示多路径下的最新文件信息?

PowerShell 批量获取指定路径下最新CSV文件并表格展示

原代码问题说明

你的现有代码存在几个小问题:

  • 未过滤CSV文件,会获取路径下所有类型文件
  • Where-Object {$_.LastWriteTime} 条件无效,所有文件都自带LastWriteTime属性
  • 输出零散,没有将结果整合为清晰的表格格式

优化后的代码

下面是能直接运行的代码,会自动过滤CSV文件,收集每个路径的最新文件信息,最后以表格形式展示:

# 定义需要检查的14个路径(替换成你的实际路径)
$Paths = @(
    'Path1', 'Path2', 'Path3', 'Path4', 'Path5', 'Path6', 'Path7',
    'Path8', 'Path9', 'Path10', 'Path11', 'Path12', 'Path13', 'Path14'
)

# 创建空数组用于存储结果
$results = @()

foreach ($Path in $Paths) {
    # 检查路径是否存在
    if (-not (Test-Path -Path $Path)) {
        $results += [PSCustomObject]@{
            检查路径 = $Path
            文件名 = "路径不存在"
            最后修改时间 = $null
            文件大小(字节) = $null
        }
        continue
    }

    # 获取路径下所有CSV文件,按最后修改时间降序排序,取最新的1个
    $latestCsv = Get-ChildItem -Path $Path -Filter "*.csv" -File | 
                 Sort-Object -Property LastWriteTime -Descending | 
                 Select-Object -First 1

    # 判断是否找到CSV文件
    if ($latestCsv) {
        $results += [PSCustomObject]@{
            检查路径 = $Path
            文件名 = $latestCsv.Name
            最后修改时间 = $latestCsv.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss")
            文件大小(字节) = $latestCsv.Length
        }
    } else {
        $results += [PSCustomObject]@{
            检查路径 = $Path
            文件名 = "无CSV文件"
            最后修改时间 = $null
            文件大小(字节) = $null
        }
    }
}

# 以表格形式输出结果
$results | Format-Table -AutoSize

pause

代码关键说明

  • 路径存在检查:避免因路径不存在导致报错
  • CSV过滤:通过-Filter "*.csv"只获取CSV文件
  • 排序取最新:用Sort-Object -Descending按修改时间倒序,Select-Object -First 1拿到最新的文件
  • 结果整合:用PSCustomObject统一数据结构,最后用Format-Table -AutoSize生成自适应宽度的表格
  • 异常处理:对路径不存在、无CSV文件的情况做了友好提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:40:47