【发布时间】:2021-09-13 01:42:01
【问题描述】:
我正在尝试导入包含几列的电子表格 - 但我还想获取 Excel 文件的名称,以添加到要导入 MS SQL Server 的列列表中。
现在 - 下面的代码从电子表格中选择我想要的列并将它们导入到表格中。但我想做的是获取文件名并将其包含在导入到名为BatchFileName 的列中。
最终我想修改它以遍历文件夹并加载它找到的任何电子表格,但首先我想看看这是否可行。我尝试将变量添加到 Select-Object 中,但没有奏效。而且我目前没有任何其他想法。
这可能吗?如果是这样,如何做到这一点?
$FileDirectory = "C:\QualityReport\"
$FileName = "QualityReport05142021.xlsx"
$BatchFileName = -JOIN ($FileDirectory,$FileName)
Write-Host $BatchFileName
$SQLInstance = "localhost"
$Database = "GenericDB"
$data = Import-Excel -Path $ImportFile -WorksheetName "Sorted" | Select-Object "IP","Network","DNS","NetBIOS","Tracking Method","OS","IP Status","QID","Title","Vuln Status","Type","Severity","Port","Protocol","FQDN","SSL"
#Write-Host $data
Write-DbaDataTable -SqlInstance $SQLInstance -Database $Database -Table "dbo.QualityReport" -InputObject $data -Truncate
【问题讨论】:
-
如果您手动执行此操作,为什么不在 Excel 文件中创建一列并避免复杂化? support.microsoft.com/en-us/office/…
-
最终目标不是手动过程 - 而是获取保存在网络驱动器上的文件并执行此操作。
-
这应该会给你一个额外的推动力:github.com/dfinke/ImportExcel/blob/master/mdhelp/en/…
标签: sql-server powershell