PowerShell - 一次计算文件夹中所有文件的 accdb 行数

PowerShell - count accdb rows for all the files in folder at once

我知道我可以计算一个 csv 有多少行,而无需使用 powershell 打开它。 示例:

import-csv C:\MyFolde\myfile.csv | Measure-Object

我需要为多路访问文件 (.accdb) 执行此操作。这次对于给定文件夹中的每个(和所有)file/s,然后我想对行求和(该文件夹中所有文件的总和)。有解决办法吗?

谢谢

我放弃了尝试使用 powershell。 但是,我设法使用 SQl 服务集成服务对所有行进行了计数。使用 foreach(遍历所有文件),在循环内部有一个任务,每个文件都有一个 select 计数并将结果输出到 xls.

谢谢大家的宝贵时间

为了未来访问者的利益,这里有一个 PowerShell 脚本,它计算指定文件夹中每个 .accdb 文件的 non-system 表中的所有行数:

$connStrStub = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
$numFiles = 0
$numTables = 0
$totalRows = 0
foreach ($f in Get-ChildItem -Path C:\Users\Public\test\*.accdb)
{
    $numFiles++
    $conn = New-Object System.Data.OleDb.OleDbConnection ($connStrStub + $f.FullName)
    $conn.Open()
    $schemaTable = $conn.GetSchema("TABLES")
    foreach ($dtRow in $schemaTable)
    {
        $tblName = $dtRow["TABLE_NAME"]
        if (!$tblName.StartsWith("MSys"))
        {
            $numTables++
            $cmd = New-Object System.Data.OleDb.OleDbCommand "SELECT COUNT(*) AS n FROM [$tblName]", $conn
            $totalRows += $cmd.ExecuteScalar()
        }
    }
    $conn.Close()
}
write-output "files: $numFiles"
write-output "user_tables: $numTables"
write-output "total_rows: $totalRows"