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

修改PowerShell代码集成TREE命令遍历子文件夹并输出到CSV

修改后的代码(遍历所有子文件夹并写入CSV)
# 根目录路径
$RootDirectory = "C:\Users\User\Desktop\Folder1"

# 递归获取所有子文件夹(包含根目录本身)
Get-ChildItem -Recurse -Force -LiteralPath $RootDirectory -Directory | 
ForEach-Object {
    # 构造自定义对象存储文件夹核心信息
    [PSCustomObject]@{
        文件夹完整路径 = $_.FullName
        文件夹名称 = $_.Name
        创建时间 = $_.CreationTime
        最后修改时间 = $_.LastWriteTime
    }
} | Export-Csv -Path "C:\Test_Folders.CSV" -NoTypeInformation -Encoding UTF8 -Delimiter ","

关键修改说明

  • 把原代码的-File参数替换为-Directory,精准筛选出文件夹而非文件
  • 重命名初始目录变量为$RootDirectory,避免循环中变量被覆盖导致逻辑混乱
  • 调整输出属性为文件夹专属信息,你可以根据需求自行增减字段(比如要加文件夹大小,可通过$_.GetFiles() | Measure-Object -Property Length -Sum计算)
  • 无需额外调用TREE命令:PowerShell原生的Get-ChildItem -Recurse -Directory已经能稳定递归获取所有层级的子文件夹,比解析TREE的文本输出更可靠、更易维护

如果需要同时保留原文件信息和新增的文件夹信息,可以合并两类数据输出到同一CSV:

$RootDirectory = "C:\Users\User\Desktop\Folder1"

# 收集文件信息
$fileData = Get-ChildItem -Recurse -Force -LiteralPath $RootDirectory -File | ForEach-Object {
    [PSCustomObject]@{
        类型 = "文件"
        路径 = $_.FullName
        名称 = $_.Name
        大小 = "$([int]($_.Length / 1kb)) KB"
        创建时间 = $_.CreationTime
        最后修改时间 = $_.LastWriteTime
    }
}

# 收集文件夹信息
$folderData = Get-ChildItem -Recurse -Force -LiteralPath $RootDirectory -Directory | ForEach-Object {
    [PSCustomObject]@{
        类型 = "文件夹"
        路径 = $_.FullName
        名称 = $_.Name
        大小 = "-"
        创建时间 = $_.CreationTime
        最后修改时间 = $_.LastWriteTime
    }
}

# 合并数据并导出
$fileData + $folderData | Export-Csv -Path "C:\Test_Combined.CSV" -NoTypeInformation -Encoding UTF8 -Delimiter ","

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 16:02:17