Команда вывода WScript.Echo в cmd - PullRequest
0 голосов
/ 29 августа 2018

Мне нужна помощь с выводом ошибки в CMD.

У нас есть система расписаний, которая не может добавлять праздничные дни в табели пользователей, это делается с помощью сценария. вот часть сценария, о которой идет речь.

    sql = "select h_user,h_date1,h_hrs,h_approved,hol_default from holidays,hol_type,logins_users where userid=h_user and h_type=hol_id and h_date1='" & today & "' order by h_type desc"
    'WScript.Echo Sql

    ar.Open Sql, cnn ', adOpenForwardOnly, adLockReadOnly, adCmdText

    If Not (ar.EOF And ar.BOF) Then  'found some holidays
        ar.movefirst()
        While Not ar.EOF
            count = count + 1
            user = ar.Fields("h_user").Value
            datestr = ar.Fields("h_date1").Value
            hours = ar.Fields("h_hrs").Value
            approved = ar.Fields("h_approved").Value
            defaulthours = ar.Fields("hol_default").Value
            If hours = 8 Then actualhours = defaulthours
            If hours = 4 Then actualhours = defaulthours / 2
            If hours = 0 Then actualhours = 0

            sqlstr = "select * from timesheets where ts_user=" & user & " and ts_hrs in(" & hours & "," & defaulthours &") and ts_date='" & today & "' and ts_job=20"
            ar1.Open sqlstr, cnn
            If Not (ar1.EOF And ar1.BOF) Then
                'record exists
                sqlstr = "update timesheets set ts_eduser=0,ts_eddate=now() where ts_user=" & user & " and ts_hrs=" & actualhours & " and ts_date='" & today & "' and ts_job=20"
            Else
                'no record
                sqlstr = "insert into timesheets (ts_user,ts_date,ts_hrs,ts_approved,ts_job,ts_cruser,ts_crdate) values (" & user & ",'" & today & "'," & actualhours & "," & approved & ",20,0,Now())"
            End If
            ar1.Close()
            cnn.Execute("insert into tracking (t_user,t_query) values (0,'" & addslashes(sqlstr) & "')")
            cnn.Execute(sqlstr)
            ar.MoveNext()
        Wend
    End If
    ar.Close
Next
message = message & count & " holidays entries added" & vbCrLf
count = 0

Set ar1 = Nothing
Set ar2 = Nothing
Set ar1 = CreateObject("ADODB.RecordSet")
Set ar2 = CreateObject("ADODB.RecordSet")

For n = 0 To 28
    daystr = DateAdd("d", n, Now())

    today = Mid(daystr, 7, 4) & "-" & Mid(daystr, 4, 2) & "-" & Left(daystr, 2)

Что мне нужно сделать, так это вывести результаты по умолчанию в окне cmd, чтобы я мог проверить ошибку в данных, которые он извлекает.

Я понимаю, что это команда WScript.Echo, но я попробовал несколько вариантов, и он останавливает выполнение скрипта.

Может ли кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 29 августа 2018

Запустите скрипт с cscript.exe вместо интерпретатора по умолчанию (wscript.exe).

cscript //NoLogo C:\path\to\your.vbs

cscript.exe печатает WScript.Echo сообщений на консоли вместо отображения всплывающих сообщений.

В качестве альтернативы вы можете заменить WScript.Echo на WScript.StdOut.WriteLine, что потребует cscript и в противном случае возникнет ошибка (поскольку WScript.StdOut недоступен в wscript).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...