我在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
答案 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
}