将多个文件的内容传递给存储过程

问题描述 投票:0回答:1

目前,我正在使用此脚本读取D:\驱动器上的所有ID.txt文件,并输出包含所有内容的CSV文件。在每个文件中,只有一个数字,它始终在第一行。

$PATH = "D:\"
$Out = @()

Get-ChildItem $PATH -Filter ID.txt -File -Recurse | foreach {
    $fileData = @{
        "Content" = (Get-Content $_.FullName -Raw)
    }
    $Out += (New-Object PSObject -Property $fileData)
}

$Out | Export-Csv "C:\out.csv" -NoTypeInformation 

这已经为我们工作了相当长的一段时间,但球门柱现在已经发生了变化。

我们现在想要将ID.txt文件的内容作为变量直接传递给存储过程,而不是输出带有ID的CSV文件。

存储过程接受输入为varchar(max),并作为IN语句传递给查询。

是否可以生成逗号分隔列表并在一次移动中将其传递给存储过程而无需先创建具有值的文件?

powershell
1个回答
0
投票

$Out -join ","会将您的数组格式化为逗号分隔字符串,假设$ out是您需要的ID的一维数组。

当您从文件中使用Select-Object -ExpandProperty ID(其中ID是列名)时,您可能需要使用Get-Content来获取所需ID值的数组。

© www.soinside.com 2019 - 2024. All rights reserved.