проблема со скриптом

Windows Script Host (WSH), WMI, vbs скрипты и т.д. Создание и применение скриптов.

Модератор: Модераторы

Новый участник
Сообщения: 1
Зарегистрирован: 07 фев 2005, 19:15

Сообщение mahus » 17 июн 2005, 12:11

применение - посылка почтового сообщения с предупреждением при нехватке свободного места на винте

применяется утилита smail (send mail): http://www.ankord.com/

где-то закралась ошибка. сам не могу найти. помогите!!!


Option Explicit

Const ForWriting = 2
Const ForReading = 1

Dim objArgs
Set objArgs = WScript.Arguments.Named
If objArgs.Count <> 2 Then
WScript.Echo "/host:[your mailserver name] /to:[your e-mail address]"
WScript.Quit
End If

Dim strHost, strToAddress
strHost = objArgs.Item("host")
strToAddress = objArgs.Item ("to")

Dim FSO, f, objDrive, DrvFreeSpace, DrvTotalSpace, strDrv
strDrv = "D:"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.OpenTextFile ("smail.ini", ForWriting, True)
Set objDrive = FSO.GetDrive (strDrv)
DrvTotalSpace = FormatNumber(objDrive.TotalSize/(1024*1024), 0)
DrvFreeSpace = FormatNumber(objDrive.FreeSpace/(1024*1024), 0)
f.writeline "[Connection]"
f.writeline "Host=" & strHost
f.writeline "Port=25"
f.writeline "[PostMessage]"
f.writeline "Charset=Windows-1251"
f.writeline "fromAddress= smail@freespace.ru"
f.writeline "Subject=" & "свободное пространство на диске" & VbTab & strDrv
f.WriteLine "ToAddress=" & strToAddress
f.WriteLine "[Body]"
f.WriteLine "Line0=" & "На диске" & VbTab & strDrv & VbTab &_
"осталось мало места:"
f.WriteLine "Line1=" & "Volume Total Size:"& VbTab & DrvTotalSpace & "GB"
f.WriteLine "Line2=" & "Volume Free Space:" & VbTab & DrvFreeSpace & "GB"
f.Close

Dim FreeSize
FreeSize = 10

Dim strDrive
strDrive = "D:"
Call DriveSpace ("D:")
Dim strCommand
strCommand = strGetPath & "smail.exe smail.ini"
' f = FSO.DeleteFile ("smail.ini")
WScript.Quit
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub DriveSpace (strDrive)
Dim FSO, objDrive, DrvFreeSpace, DrvTotalSpace, FreeSize
Set FSO = WScript.CreateObject ("Scripting.FileSystemObject")
Set objDrive = FSO.GetDrive (strDrive)
DrvFreeSpace = FormatNumber(objDrive.FreeSpace/(1024*1024), 0)
DrvTotalSpace = FormatNumber(objDrive.TotalSize/(1024*1024), 0)
If DrvFreeSpace <= FreeSize Then
Call RunCommand (strCommand)
End If
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function strGetPath
Dim path
path = WScript.ScriptFullName
strGetPath = Left(path, InstrRev(path, "\"))
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function RunCommand (strCommand)
Dim WshShell, objExec, strStream
Set WshShell = CreateObject("WScript.Shell")
Set objExec = WshShell.Exec(strCommand)
If Not objExec.StdOut.AtEndOfStream Then
strStream = objExec.StdOut.ReadAll
End If
If Not objExec.StdErr.AtEndOfStream Then
strStream = "STDERR: " + objExec.StdErr.ReadAll
End If
Do While objExec.Status = 0
WScript.Sleep 200
Loop
RunCommand = objExec.ExitCode
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2