2013-05-30 5 views
0

У меня есть следующий Powershell скрипт:Почему powershell не обновляет базу данных?

$a = Get-Content C:\users\diana\desktop\names.txt 

snmpwalk -v 2c -c root $a .1.3.6.1.2.1.25.3.3.1.2 > c:\users\diana\desktop\cpu.txt 
snmpwalk -v 2c -c root $a .1.3.6.1.2.1.25.5.1.1.2 > c:\users\diana\desktop\ramvid.txt 
snmpwalk -v 2c -c root $a .1.3.6.1.2.1.25.2.2 > c:\users\diana\desktop\ram.txt 

get-content C:\users\diana\desktop\ramvid.txt | %{ [int]$used+=$_.split(' ')[3]; } ;  echo $used > C:\users\diana\desktop\naujas.txt 
get-content C:\users\diana\desktop\ram.txt | %{ [int]$total=$_.split(' ')[3]; } ; echo  $total > C:\users\diana\desktop\ramfiltruotas.txt 

[decimal]$b=($used*100)/$total 
[math]::floor($b) > C:\users\diana\desktop\naujas2.txt 


get-content C:\users\diana\desktop\cpu.txt | %{ [int]$array=$_.split(' ')[3]; } 
$c=($array | Measure-Object -Average).average 
echo $c > C:\users\diana\desktop\naujas3.txt 

[void][system.reflection.Assembly]::LoadWithPartialName(“MySQL.Data”) 

$myconnection = New-Object MySql.Data.MySqlClient.MySqlConnection 
$myconnection.ConnectionString = "database=db;server=localhost;Persist Security Info=false;user id=root;pwd= " 
$myconnection.Open() 
$command = $myconnection.CreateCommand() 
$command.CommandText = "UPDATE db.server SET (cpu='$c',ram='$b') WHERE server_name like '192.168.95.139'"; 
$myconnection.Close() 

Верхняя часть кода отлично работает, но когда дело доходит до MySQL ничего не происходит. Ни одной ошибки, ничего, таблица не обновляется. Может кто-нибудь указать мне, где проблема здесь?

+0

. , круглые скобки вокруг 'set' выглядят не так. Возможно, MySQL/powershell это как-то исправит. Но, попробуйте это без парнеров. –

+0

По-прежнему то же самое ... –

+1

Я не вижу нигде, что вы на самом деле выполняете команду. – EBGreen

ответ

0

Похоже, вы не выполняет команду, возможно:

$command.ExecuteNonQuery() 

Я думаю, вы должны также распоряжаться:

$command.Dispose() 
+0

Да! Вот и все, спасибо, ааааа! –

Смежные вопросы