Какой код для выхода / остановки работы VBscript в случае невыполнения условия?

Я посмотрел в Google, но ответа нет!

Перво-наперво. WScript.Quit 9X_vbscript НЕ РАБОТАЕТ! Я понятия не имею, что такое 9X_vbs «WScript», но он явно не имеет ничего общего 9X_vbs со сценарием на стороне клиента для веб-страницы. Я 9X_vbs уже где-то видел этот "WScript", и он просто 9X_vbs вызывает ошибки (может быть, устаревший 9X_vbs или что-то в этом роде), поэтому, пожалуйста, не 9X_vbs предлагайте его ...

В любом случае ... все, что 9X_vbscript я хочу сделать, это полностью остановить 9X_vbscript скрипт в случае невыполнения условия. Очевидно, я 9X_vbs не хочу "Exit Sub", потому что код продолжит 9X_vbs работу, если этот sub будет встроен!

Мне 9X_vbscript известна команда "стоп", но у меня сложилось 9X_vbscript впечатление, что она используется только 9X_vbs для отладки.

Надеюсь, это очень простой вопрос.

ОБНОВЛЕНИЕ 9X_vbs и заключение: прежде чем закрыть эту тему, я 9X_vbs просто немного расскажу о том, что я пытался 9X_vbs сделать ...

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

Частью этой предварительной проверки 9X_vbs была остановка программы в случае неправильного 9X_vbs ввода данных пользователем. Если была обнаружена 9X_vbs ошибка, я хотел остановить весь прогресс 9X_vbscript с этого момента. Очевидно, что «выходная 9X_vbscript подпрограмма» просто пропустит оставшуюся 9X_vbs часть этой предварительной подпрограммы, и 9X_vbs основная подпрограмма продолжит выполнение.

В 9X_vbscript конце концов, это был просто случай записи 9X_vbscript флага ошибки (который проверяется в основных 9X_vbscript подпрограммах) или включения операции условия 9X_vbscript ошибки в каждую главную процедуру. Таким 9X_vbscript образом, вы выйдете из основного подменю, и 9X_vbs проблема будет решена.

Не было лени - просто 9X_vbs хотелось сократить объем кода. В любом случае 9X_vbs спасибо за ответы.

8
2

  • Хорошо - возможно, я был немного не в курсе, что не узнал, что такое «WScript» (теперь я знаю, что это означает Windows-скрипт), но в любом случае это не работает. Это просто выдаст ошибку, говорящ ...
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: Какой код для выхода / остановки работы VBscript в случае невыполнения условия?

Я обнаружил, что WScript всегда доступен 9X_vbs при запуске сценария .vbs / .vbe / .wsf 9X_vbscript с использованием механизма wscript.exe или 9X_vbs cscript.exe. Когда WScript недоступен, это 9X_vbs при работе с другим движком. Например. запуск 9X_vbscript сценария VBScript в HTA, веб-странице, в 9X_vbs VBA или из размещенного элемента управления 9X_vbs сценарием COM.

Чтобы выйти из запущенного 9X_vbs сценария из wscript.exe или cscript.exe, вы 9X_vbscript можете сделать что-то вроде следующего:

main

Sub main
    ' execute code here

    ' oops a confition is not met:
    If Not condition then Exit Sub

    ' more code to execute if condition was met
End Sub

10
0

Ответ #2

Ответ на вопрос: Какой код для выхода / остановки работы VBscript в случае невыполнения условия?

Вы можете использовать что-то вроде этого:

Sub MyFunc
    ----------
    My Code
    ----------
End Sub

Function Main
  On Error Resume Next
  MyFunc
  If Err.Number <> 0
  Exit Function
End Function

Он 9X_vbs прекратит выполнение кода, если обнаружит 9X_vbscript исключение или выдаст ошибку.

7
0

Ответ #3

Ответ на вопрос: Какой код для выхода / остановки работы VBscript в случае невыполнения условия?

Объект Wscript доступен только в том случае, если вы работаете на хосте сценариев Windows (wscript.exe, cscript.exe). НЕ Internet Explorer (iexplorer.exe, mshta.exe)

Что ж, простой способ сделать это - объявить 9X_vbs глобальную переменную, для которой установлено 9X_vbs значение false до тех пор, пока не возникнет 9X_vbscript ошибка, и если ошибка произойдет, эта переменная 9X_vbscript будет установлена ​​в значение true, после 9X_vbs этого в любое время, когда эта переменная 9X_vbs будет проверена, вы можете выйти. sub \ function 9X_vbs \ for \ do \ что угодно.

Пример:

Dim ErrorOccured
On Error Resume Next
ErrorOccured=False


Sub Main()
    If ErrorOccured Then Exit Sub
    'some code
    MsgBox "Main has run"
End Sub


Sub MakeAnError
    If ErrorOccured Then Exit Sub
    'some code
    Err.Raise 2
    If Err Then ErrorOccured=True
End Sub


Function TellMeRandom
    If ErrorOccured Then Exit Function
    'some code
    Randomize
    TellMeRandom =Int((100- 1+ 1) * Rnd + 1)*1
End Function


Function ResetError
    ErrorOccured=False
End Function



Call Main                 'Main will run because an error has not occured (ErrorOccured is False)

MsgBox TellMeRandom       'This will return a random number 1-100

Call MakeAnError          'This will set the Global ErrorOccured to true

MsgBox TellMeRandom       'This will be blank because the ErrorOccured prevented it from running

Call Main                 'This will not run because the ErrorOccured prevented it from running

Call ResetError           'This will set the Global ErrorOccured to false

Call Main                 'This will run because ErrorOccured is back to False

MsgBox TellMeRandom       'This will return a random number 1-100 because ErrorOccured is back to false

Просто не 9X_vbs забудьте добавить If ErrorOccured then Exit Sub для подпрограммы или 9X_vbscript If ErrorOccured then Exit Function для функции.

3
0

Ответ #4

Ответ на вопрос: Какой код для выхода / остановки работы VBscript в случае невыполнения условия?

Самый простой способ, который я нашел: WScript.Quit

9X_vbs

3
0