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

如何用PowerShell获取目录及子目录下EXE/DLL的产品信息并导出CSV

遍历指定目录树导出DLL/EXE版本信息到CSV的PowerShell方案

问题解决思路

原代码仅处理单级目录的文件,且手动拼接CSV容易出现格式错误(如字段包含逗号时导致列错位)。以下脚本通过PowerShell的递归遍历和内置CSV导出功能,解决子目录遍历问题,同时保证CSV格式的规范性。

完整脚本

# 定义要扫描的根目录
$rootDirectory = "C:\Folder Name\"
# 定义导出的CSV文件路径
$outputCsvPath = "C:\导出的程序文件信息.csv"

# 递归遍历根目录下所有DLL和EXE文件,提取目标信息并导出
Get-ChildItem -Path $rootDirectory -Recurse -Include *.dll,*.exe -File | ForEach-Object {
    $versionInfo = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_.FullName)
    # 过滤掉ProductName和ProductVersion都为空的条目(可根据需求移除该判断)
    if (-not [string]::IsNullOrWhiteSpace($versionInfo.ProductName) -or -not [string]::IsNullOrWhiteSpace($versionInfo.ProductVersion)) {
        [PSCustomObject]@{
            文件名          = $_.FullName
            产品名称        = $versionInfo.ProductName
            产品版本号      = $versionInfo.ProductVersion
        }
    }
} | Export-Csv -Path $outputCsvPath -NoTypeInformation -Encoding UTF8

关键参数说明

  • -Recurse:开启递归遍历,自动处理所有子目录
  • -Include *.dll,*.exe:精准筛选目标文件类型,避免扫描无关文件
  • PSCustomObject:结构化输出数据,确保每个字段对应正确列
  • Export-Csv:PowerShell内置的CSV导出工具,自动处理字段中的特殊字符(如逗号、引号),保证格式合法
  • -Encoding UTF8:避免导出CSV时出现中文乱码问题
  • 过滤判断:仅保留有有效产品信息的条目,减少无效数据(不需要可直接删除if块)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:12:45