Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Циклирование скрипта (http://forum.oszone.net/showthread.php?t=293489)

alado 05-01-2015 00:17 2452041

Циклирование скрипта
 
Добрый день.
Помоги построить цикл, я без 5 минут как в powershell. Я пробовал использовать while не получилось, работает он так: ждет до определенного значения батареи и потом отсылает, но больше не работает :( получается что цикл как бы на раз... Пробовал реализовать через for и do успехов тоже не принесло.

Оригинал кода такой:
Код:

$bat = $(Get-WmiObject win32_battery).estimatedChargeRemaining

if ($bat -cle 35)
{
$message = New-Object System.Net.Mail.MailMessage $From, $To
$message.Subject = $subject
$message.IsBodyHTML = $true
$message.Body = $body
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
$smtp.Send($message)
Start-Sleep -Seconds 60
}
else
{
}

Мои попытки с while:

Код:

$bat = $(Get-WmiObject win32_battery).estimatedChargeRemaining
$a = 0
While ($a -le 5)
{
if ($bat -cle 35)
{
$message = New-Object System.Net.Mail.MailMessage $From, $To
$message.Subject = $subject
$message.IsBodyHTML = $true
$message.Body = $body
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
$smtp.Send($message)
#5 minutes (300)
Start-Sleep -Seconds 60
}
else
{
}
}
}

Так же пробовал через true сделать:

Код:

$bat = $(Get-WmiObject win32_battery).estimatedChargeRemaining
While ($true)
{
if ($bat -cle 35)
{
$message = New-Object System.Net.Mail.MailMessage $From, $To
$message.Subject = $subject
$message.IsBodyHTML = $true
$message.Body = $body
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
$smtp.Send($message)
#5 minutes (300)
Start-Sleep -Seconds 60
}
else
{
}
}


Kazun 05-01-2015 00:49 2452054

Код:

While ($true)
{
        if ($bat -cle 35)
        {
                $smtp.Send($message)
        }
       
        Start-Sleep -Seconds 60
        $bat = $(Get-WmiObject win32_battery).estimatedChargeRemaining
}



Время: 21:09.

Время: 21:09.
© OSzone.net 2001-