Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > скрипт не работает!!!!!!!!!!!!!!!!!!


Автор: Angelinka 15.11.2007, 14:30
здравствуйте! Помогите, пожалуйста. я начинаю только писать скрипты. написала одан, а он не идет
Нужно скриптом вытягивать из файлов нужные столбцы и записыввать в другой файл и нужном виде.
Вот что у меня получилось. Но он не работает. 
Код

LogDirPath = "C:\Program Files\TrafInsp\Log\"
Set Args = WScript.Arguments.Unnamed
If Args.Count <> 1 Then
       WScript.Echo "??? usage: cscript.exe billing.vbs DaysAmount, ObjectType /sn:ServerName"        
       WScript.Quit        
End If
DayAm = CInt(Args(0))
Set fso = CreateObject("Scripting.FileSystemObject")
Set LogDir = fso.GetFolder(LogDirPath)
Set LogFolders = LogDir.SubFolders
For Each LFolder In LogFolders
       WScript.Echo LFolder.Name
       Set LogFiles = LFolder.Files
       For Each LFile In LogFiles
               If (LFile.DateLastModified < DateAdd("d",-DayAm,Date)) And (Right(LFile.Name,3) = "log") Then
                       FileRO = LFile.attributes And 1
                       If FileRO = 0 Then
                               WScript.Echo "  Обрабатывается " & LFile.Name & "  " & DateValue(LFile.DateLastModified) & "..."
                       LFile.APILogon(APIPass)
BillData = LFile.ApiGetBilling(ObjType, ObjID)
If Not IsArray(BillData) Then
      WScript.Echo "Нет данных"        
      WScript.Quit        
End If
If IsArray(BillData(0)) Then
       For I = 0 To UBound(BillData, 1)
               Data = BillData(I)
               WScript.Echo Data(0) & Chr(9) & Data(1) & Chr(9) & Data(2) & Chr(9) & Data(3) & Chr(9) & Data(4) & Chr(9) & Data(5)
       Next
Else
       WScript.Echo "login" & Chr(9) & BillData(0)
       WScript.Echo "recv" & Chr(9) & BillData(1)
       WScript.Echo "sent" & Chr(9) & BillData(2)
       WScript.Echo "starttime" & Chr(9) & BillData(3)
       WScript.Echo "stoptime" & Chr(9) & BillData(4)
       WScript.Echo "ipdest" & Chr(9) & BillData(5)
       WScript.Echo "ipsour" & Chr(9) & BillData(6)
       WScript.Echo "portsour" & Chr(9) & BillData(7)
       WScript.Echo "protocol" & Chr(9) & BillData(8)
       WScript.Echo "attributes" & Chr(9) & BillData(9)
End If
                       Else
                               WScript.Echo "  Невозможно обработать файл " & LFile.Name & "  " & DateValue(LFile.DateLastModified) & " - предназначен только для чтения."
                       End If
               End If
       Next
Next
WScript.Echo "Обработаны все логи до " & DateAdd("d",-DayAm,Date) & "."




помоите!!!!!!!!  

Автор: Akina 15.11.2007, 14:54
Цитата(Angelinka @  15.11.2007,  15:30 Найти цитируемый пост)
Вот что у меня получилось. Но он не работает.

Неправда. Он работает. Просто не так, как тебе хочется.

Подели код на процедуры и отлаживай их по одной.

И ПОЛЬЗУЙСЯ ТЕГОМ КОД!!! ни хрена прочитать невозможно.

Автор: Angelinka 15.11.2007, 15:05
Серьезно! он указывает на ошибку в 4-ой строке. я только закончила универ. скрипт пишу впервые вжизни! и на форуме впервые зарегистрировалась, поэтому как-то получилось три раза одно и то же!!!

Автор: Akina 15.11.2007, 15:16
Цитата(Angelinka @  15.11.2007,  16:05 Найти цитируемый пост)
он указывает на ошибку в 4-ой строке

Если ты еще скажешь, какая именно строка четвертая (в файле скрипта!!!), и в каком символе - будет совсем хорошо.

А сообщения об ошибках принято воспроизводить 1) полностью 2) абсолютно точно.

Автор: Angelinka 15.11.2007, 15:27
не ругайтесь, пожалуйста. я его запускаю и вылазит сообщение от сервера сценариев windows: 

??? usage: cscript.exe billing.vbs DaysAmount, ObjectType /sn:ServerName

Добавлено через 9 минут и 47 секунд
я сделала файл bat. запускаю скрипт через него, а он выдает:
[E:\scripts>echo on
E:\scripts>cd C:\Program Files\TrafInsp\scripts
E:\scripts>cscript.exe billing.vbs 30000 3
Сервер сценариев Windows (Microsoft R) версия 5.6
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.
??? usage: cscript.exe billing.vbs DaysAmount, ObjectType /sn:ServerName
E:\scripts>pause
Для продолжения нажмите любую клавишу . . .]
[/quote]

Автор: Akella 15.11.2007, 16:09
Цитата(Angelinka @  15.11.2007,  15:05 Найти цитируемый пост)
Серьезно! он указывает на ошибку в 4-ой строке. я только закончила универ. скрипт пишу впервые вжизни! и на форуме впервые зарегистрировалась, поэтому как-то получилось три раза одно и то же!!! 

хорошо, хорошо, только не нужно кричать, я имею ввиду все Ваши восклицательные знаки. Ведите себя достойно.

Автор: Angelinka 15.11.2007, 16:14
хорошо smile  smile 

а как можно пошагово проследить выполнение скрипта?
почему он может не выполняться?

Автор: Akella 15.11.2007, 16:17
И ещё: на форумах есть понятие тэгов, т.е. твой код нужно было оформить в тегах. Посмотри кнопочки на окном ввода информации.

Автор: Angelinka 15.11.2007, 16:21
хорошо. сейчас оформлю(попробую)

Добавлено через 57 секунд
спасибо! поможете?не понимаю, в чем дело.

Добавлено через 4 минуты и 23 секунды
пусть он хоть как-нибудь работает.  хоть что-небудь извлекает из файла. а там уже разберусь.

Автор: Imple 16.11.2007, 07:02
Скрипт не выполняется изза аргументов коммандной строки. Это же ясно видно, и к тому-же скрипт вам выводит сообщение, как его правильно надо запускать! Повнимательнее посмотрите сюда:
Код

If Args.Count <> 1 Then
       WScript.Echo "??? usage: cscript.exe billing.vbs DaysAmount, ObjectType /sn:ServerName"        
       WScript.Quit        
End If


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

Автор: Angeldnja 16.11.2007, 10:53
Спасибо. я его написала, синтезируя несколько других скриптов. теперь он выдает:
Цитата

с:\Program Files\TrafInsp\scripts\billing.vbs(7, 1) Ошибка выполнения 
Microsoft VBScript: Индекс выходит за пределы диапазона

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)