Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница:

 

  Вопрос: проблема со скриптом Добавлено: 07.06.05 17:47  

Автор вопроса:  mahus
это мой первый скрипт, так что не ругайтесь!!!!

цель- определение свободного дискового пространства и отсылка почтового сообщения, если его меньше определенного значения.

проблема - срабатывает через раз и, кроме того, я не могу запустить его из командной строки: не удается найти указанный файл

Разъясните, в чем ошибка...


Option Explicit

Const ForWriting = 2

Dim FreeSize
FreeSize = 10

Dim strDrive
strDrive = ("D:")

Call DriveSpace ("D:")
Call RunCommand ("smail.exe smail.ini")


'''''''''''''''''''''''''''''''''''''''''''''''
Dim objArgs
Set objArgs = WScript.Arguments.Named
If objArgs.Count <> 2 Then
WScript.Echo "/host:[mailserver] /to:[e-mail address]" '/mess:[message]
WScript.Quit
End If
Dim strHost, strToAddress ', strmess
strHost = objArgs.Item("host")
strToAddress = objArgs.Item ("to")
' strMess = objArgs.Item ("mess")

Dim FSO, f, objDrive, DrvFreeSpace, DrvTotalSpace
Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.OpenTextFile ("smail.ini", ForWriting, True)
Set objDrive = FSO.GetDrive (strDrive)
DrvFreeSpace = FormatNumber(objDrive.FreeSpace/(1024*1024), 0)
DrvTotalSpace = FormatNumber(objDrive.TotalSize/(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="
f.WriteLine "ToAddress=" & strToAddress
f.WriteLine "[Body]"
f.WriteLine "Line0=" & "На диске" & VbCrLf & strDrive & VbCrLf & "осталось мало места:"
f.WriteLine "Line1=" & "Volume Total Size:"& DrvTotalSpace
f.WriteLine "Line2=" & "Volume Free Space:" & DrvFreeSpace
f.Close
f = FSO.DeleteFile ("smail.ini")

''''''''''''''''''''''''''''''''''''''''''''''''''
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 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
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
WScript.Quit

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам