Powershell存储功能将值返回到变量中

时间:2018-07-09 03:28:29

标签: powershell

我在Stack Overflow上找到了一个很好的答案,它解释了如何拥有一个运行某些SQL以返回单个值的powershell函数。

我不了解的是如何调用函数并将结果放入以后可以使用的变量中?任何帮助将不胜感激

https://stackoverflow.com/a/22715645/2461666

[string] $Server= "10.0.100.1",
[string] $Database = "Database123",
[string] $SQLQuery= $("SELECT [FeedID] FROM [dbo].[FeedList] WHERE [FeedFileName] = 'filename.txt'")

function GenericSqlQuery ($Server, $Database, $SQLQuery) {
    $Connection = New-Object System.Data.SQLClient.SQLConnection
    $Connection.ConnectionString = "server='$Server';database='$Database';trusted_connection=true;"
    $Connection.Open()
    $Command = New-Object System.Data.SQLClient.SQLCommand
    $Command.Connection = $Connection
    $Command.CommandText = $SQLQuery
    $Reader = $Command.ExecuteReader()
    while ($Reader.Read()) {
         $Reader.GetValue($1)
    }
    $Connection.Close()
}

这是我目前正在尝试的方法,但似乎根本没有用...

$myvariable = GenericSqlQuery

2 个答案:

答案 0 :(得分:0)

太棒了,汤姆(Tommy)首先在堆栈溢出中搜索了答案!

认为我找到了另一个可以帮助您的人!

我发现可能会有所帮助的
powershell function output to variable

下面是来自上面的链接

function getip {
    $strComputer = "computername"

    $colItems = GWMI -cl "Win32_NetworkAdapterConfiguration" -name "root\CimV2" -comp $strComputer -filter "IpEnabled = TRUE"

    ForEach ($objItem in $colItems) {
        $objItem.IpAddress
    }
}


$ipaddress = getip

答案 1 :(得分:0)

好的,在这种情况下,对我有用的方法是将值传递给函数中的变量,然后在函数中像这样返回变量。...

while ($Reader.Read()) {
     $SQLResult = $Reader.GetValue($1) 
     return $SQLResult
}