1 (изменено: Dron, 2011-09-07 10:40:54)

Тема: VBS: Тестирование интернет соединения

Сделал вот так не работает выдает ошибку че ему не хватает?

Dim fso, tf, time 
Set fso = CreateObject("Scripting.FileSystemObject") 
while 1=1 
Const ForAppending = 8 
Set tf = fso.OpenTextFile("Тест интернет.txt", ForAppending, True) 
time = Now() 
tf.Write(time) 
Set oShell = WScript.CreateObject("WScript.Shell") 
strHost = "192.168.0.150" 
strPingCommand = "ping -n 1 -w 300 " & strHost 
ReturnCode = oShell.Run(strPingCommand, 0 , True) 
If ReturnCode = 0 Then 
tf.WriteLine "" 
tf.WriteLine "Есть подключение." 
Else 
tf.WriteLine "" 
tf.WriteLine "Нет подключения." 
End If 
WScript.Sleep 10000 
wend

2 (изменено: Dmitrii, 2011-09-06 15:57:22)

Re: VBS: Тестирование интернет соединения

Dron пишет:

... на автомате запускался каждые 10 секунд ...

Используйте какой-нибудь подходящий планировщик (стандартный не умеет работать с интервалами времени менее 1 мин.).

Dron пишет:

... вместо того что бы выводить десять раз строку есть подключение надо что бы вывело только один раз до того момента пока подключение не исчезнет со строкой нет подключения аналогично.

Один из вариантов: читайте весь текст и сравнивайте последнюю записанную в него строку с текущим диагностическим сообщением. Если строки совпадают - ничего не пишите, не совпадают пишите.

3

Re: VBS: Тестирование интернет соединения

Не могли бы это написать в скрипте я в vbs не очень

4

Re: VBS: Тестирование интернет соединения

Dron, пожалуйста, используйте знаки препинания в предложениях. Это облегчает понимание.

5

Re: VBS: Тестирование интернет соединения

Dim fso, tf, time, CurrentStatus
CurrentStatus = false
Set fso = CreateObject("Scripting.FileSystemObject") 
Const ForAppending = 8 
Set tf = fso.OpenTextFile("Тест интернет.txt", ForAppending, True) 
time = Now() 
tf.Write(time) 
Set oShell = WScript.CreateObject("WScript.Shell") 
strHost = "www.google.ru" 
strPingCommand = "ping -n 1 -w 300 " & strHost 
ReturnCode = oShell.Run(strPingCommand, 0 , True) 
If ReturnCode = 0 Then 
  If (Not CurrentStatus) Then
    CurrentStatus = true    
    tf.WriteLine "" 
    tf.WriteLine "Есть подключение." 
  End If  
Else 
  If CurrentStatus Then
    CurrentStatus = false
    tf.WriteLine "" 
    tf.WriteLine "Нет подключения." 
  End If  
End If

6 (изменено: Dmitrii, 2011-09-07 15:14:49)

Re: VBS: Тестирование интернет соединения

Dron пишет:

... выдает ошибку...

1. Какую именно ошибку и в какой строке?
2. Ключевое слово Time нельзя использовать в качестве имени переменной, т.к. это имя одной из стандартных функций (возвращает текущее системное время).
Кроме того, использование промежуточной переменной здесь вообще излишне. Можно так:

tf.Write(Now)

3. Что, уже изменились исходные условия задачи? Первоначально, кажется, речь шла о том, что запись в файл нужно выполнять лишь при изменении состояния подключения.

7

Re: VBS: Тестирование интернет соединения

ну, и файл все же стоит закрыть в конце скрипта

tf.Close()

либо открывать и закрывать при каждой записи