访问 PowerShell 数据集数据



嗨,伙计们感谢您的帮助,非常感谢。 我是Powershell的新手,使用Powershell访问SQL服务器的数据 我的查询正在执行,但查询的输出为 10,数据正在数据集中填充 我希望该数据以路径连接,例如 10、20 $version

$select=Select-String -Pattern "Final result:" -Path 'C:Program FilesMicrosoft SQL Server'$version'Setup BootstrapLogSummary.txt' #|Out-File c:pattern.txt

请在下面找到代码

param([string]$servername)
$filePath = "c:tempresult.txt"

try
{
$SqlQuery = "select SUBSTRING(CONVERT(sysname, SERVERPROPERTY('ProductVersion')),0,CHARINDEX('.',convert(sysname,SERVERPROPERTY('ProductVersion')),0))"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $Servername; Database = master; Integrated Security = SSPI;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$version = $DataSet.Tables[0].rows[0].data
#$version=System.Data.DataSet.Tables[1].Rows[0][0] 
Write-Host $version
$DataSet.Tables[0] | out-file "C:tempversion.csv"
$defaultdata = $DataSet.Tables[0].rows[0].data
Write-Host $defaultdata
$select=Select-String -Pattern "Final result:" -Path 'C:Program FilesMicrosoft SQL Server'$version'Setup BootstrapLogSummary.txt' #|Out-File c:pattern.txt
$select1=Select-String -Pattern "Final result:" -Path 'C:Program FilesMicrosoft SQL Server'$version'Setup BootstrapLogSummary.txt' |Out-File D:temppattern.txt
write-host($select.Line.Length)
if( $select.Line.Length -gt 0 )
{
Write-Host 'Contains String'
$select2=Select-String -Pattern "Passed" -Path 'D:temppattern.txt'
if($select.Line.Length -gt 0)
{  
#out-File c:tempresult.txt $filePath -Append 
New-Item $filePath -ItemType file
'Success'| Out-File -FilePath $filePath -Append   
}   
else   
{
New-Item $filePath -ItemType file
'Failed'| Out-File -FilePath $filePath -Append  
}      
}
else
{
Write-Host 'Does not contain String'
}
}
catch
{
Write-Host -BackgroundColor Red -ForegroundColor White "Fail" 

$errText =  $Error[0].ToString() 

if ($errText.Contains("network-related")) 

{Write-Host "Connection Error. Check server name, port, firewall."}   
Write-Host $errText 

continue 
}

我想要 $version=10,因为查询的输出为 10,不知何故我无法得到它, 虽然我在 CSV 文件中获得了相同的数据,但我希望在$version变量中使用相同的数据。

调用数据时有一个证明 数据集中没有数据列 你可以做两件事 1: $version = $DataSet.表[0].行[0].数据

取代

$version = $DataSet.Tables[0].rows[0]。列1

或 2: 您可以更改 SQLquery 并按如下所示命名您选择的列: $SqlQuery = "select SUBSTRING(CONVERT(sysname, SERVERPROPERTY('ProductVersion'((,0,CHARINDEX('.',convert(sysname,SERVERPROPERTY('ProductVersion'((,0(( 作为数据">

最新更新