0

我有一个值,我想找到并从数据库中提取出来。我拥有运行此脚本所需的一切,除了如何将结果存储在变量中,然后将这些结果写入 txt 文件

$CNumber = Invoke-Sqlcmd -query ("Select Cust From SY.CompanyCode") -ServerInstance $SQLInstance -Database $Database

Add-Content $Mobile $CNumber

当它将结果写入文本文件时,它看起来像这样:

System.Data.DataRow

当我只运行 Invoke-Sqlcmd 并且不尝试将其存储在变量中时,我可以看到正确的值。所以我假设一旦这个查询运行,我需要以某种方式转换结果?

谢谢,麻烦您了。

4

1 回答 1

2

因为查询的结果是 a System.Data.DataRow,所以 PowerShell 首先需要将 a 转换DataRow为 aString才能使用,Add-Content而将任何对象转换为 a 的最简单方法String是使用ToString()方法。

您可以通过致电自行检查

$CNumber.ToString()

它应该在控制台中显示为:

System.Data.DataRow # OR System.Object[] if there are multiple DataRows

由于您只选择一列,您可以简单地访问属性,DataRow但请记住,查询可能会返回多个DataRows 我们应该遍历它们,如下所示:

foreach($row in $CNumber.Cust)
{
    # row will be equal to each cust from the query
    # add row to your file here
}
于 2017-10-26T22:48:49.797 回答